转自 wcc_Learning 原文链接:C++算法基础之头文件_wcc_Learning的博客-CSDN博客_c++算法头文件
#include<cstdio>
在C++中拥有在C语言里一样的语法,像输入输出。
#include<cstring>
包含很多字符串函数,如复制、比较是否相等、字符串连接。
#include<iostream>
输入输出流,包括输出格式的控制
#include<cstdlib>
在C++中拥有在C语言里一样的语法,像开辟空间释放空间函数calloc、malloc,realloc和free;随机数rand。
#include<bitset>
相当于一个多位二进制数,八位一字节,支持基本的位运算操作。
#include<cmath>
数学函数,和C语言一样,有绝对值函数、开平方函数、求幂方函数等等。
#include<algorithm>
算法头文件,包括很多常用函数,像find_if、for_each、sort、partial_sort。
#include<string>
stl容器,有初始化、拼接、赋值、查找、替换、比较、子串、插入和删除操作。
#include<vector>
stl容器,动态数组(可变数组),也叫单口容器,有初始化、常用赋值操作、存取、插入、删除、大小操作。
#include<stack>
栈容器,先进后出,栈不能遍历,不支持随机存取,只能通过top从栈顶获取和删除元素,不提供迭代器。常用API有构造函数,赋值操作,数据存取操作和大小操作。
#include<list>
链表容器
链表是由一系列的结点组成,结点包含两个域,一个数据域,一个指针域。
链表内存是非连续的,添加删除元素,时间复杂度都是常数项,不需要移动元素,比数组添加删除效率高。
链表只有在需要的时候才分配内存。
链表 只要拿到第一个结点,相当于拿到整个链表。
链表需要额外的空间保存结点关系 前驱后继。
常用API有构造函数,数据元素插入删除操作,大小操作,赋值操作,数据存取和反转排列顺序。
#include<deque>
双口容器,支持随机存取。所谓双向开口,意思就是可以在头尾两端分别做元素的插入和删除操作。
双端插入和删除元素效率高。
指定位置插入也会导致数据元素移动,降低效率。
可随机存取,效率高.。
常用API有构造函数,赋值操作,大小操作,双端插入删除操作,数据存取。
#include<set>
二叉树容器
所有元素会根据元素的值自动进行排序。
set是以RB-tree(红黑树,平衡二叉树的一种)为底层机制,其查找效率非常好。
set容器中不允许重复元素,multiset允许重复元素。
常用API有构造函数,赋值操作,大小操作,插入删除操作,查找操作。
#include<map>
map相对于set区别,map具有键值和实值,所有元素根据键值自动排序,pair的第一元素被称为键值,第二元素被称为实值,map也是以红黑树为底层实现机制的。
常用API有构造函数,赋值操作,大小操作,插入删除操作,查找操作。
#include <bits/stdc++.h>
万能头文件,包含了目前c++所包含的所有头文件。可替换所有头文件。