(温馨提示:本文章适合有一定基础的同学考前熟悉)
包含:vector,stack,queue,map,set,pair,string等常见容器的定义、常用函数及注意事项。
超级详细,超级全面,考个350绝对够用了!(大佬也不会来看我这个的)
第一次正式写东西,好多东西用不熟练,之后会慢慢改进的,大家请多指教!
Vector
指定长度和初始值的初始化:
vector<int> v(n); // 定义一个长度为n的数组,初始值默认为0,下标范围[0, n - 1]
vector<int> v(n, 1); // v[0] 到 v[n - 1]所有的元素初始值均为1
//注意:指定数组长度之后(指定长度后的数组就相当于正常的数组了)
初始化中有多个元素:
vector<int> a{1, 2, 3, 4, 5};//数组a中有五个元素,数组长度就为5
常用函数:
c.front() //返回第一个数据O ( 1 ) O(1)O(1)
c.back() //返回数组中的最后一个数据 O ( 1 ) O(1)O(1)
c.pop_back() //删除最后一个数据O ( 1 ) O(1)O(1)
c.push_back(element) //在尾部加一个数据O ( 1 ) O(1)O(1)
c.size() //返回实际数据个数(unsigned类型)O ( 1 ) O(1)O(1)
c.clear() //清除元素个数O ( N ) O(N)O(N),N为元素个数
c.resize(n, v) //改变数组大小为n,n个空间数值赋为v,如果没有默认赋值为0
c.insert(it, x) //向任意迭代器it插入一个元素x ,O ( N ) O(N)O(N)
//例:c.insert(c.begin() + 2,-1) //将-1插入c[2]的位置
c.erase(first,last) //删除[first,last)的所有元素,O ( N ) O(N)O(N)
c.begin() //返回首元素的迭代器(通俗来说就是地址)O ( 1 ) O(1)O(1)
c.end() //返回最后一个元素后一个位置的迭代器(地址)O ( 1 ) O(1)O(1)
c.empty() //判断是否为空,为空返回真,反之返回假 O ( 1 ) O(1)O(1)
sort(c.begin(), c.end());
vector<int> a(n + 1);
sort(a.begin() + 1, a.end()); // 对[1, n]区间进行从小到大排序
访问:
vector<int> vi; //定义一个vi数组
vector<int>::iterator it = vi.begin(); //声明一个迭代器指向vi的初始位置