一个特别好用的网站:http://www.cplusplus.com/reference/deque/deque/
C++ vector用法解析 也可类推STL,string。
好像大部分函数都是通用的,还没发现不合适的,如有错误,望指出。
一维初始化:vector<type> vec = {}; vector<type> vec2(vec);
二维初始化:vector<vector<type>> vvec = {{}}; vector<vector<type>> vvec2(vvec);
顺序容器中的元素按照严格的线性顺序排序。可以通过元素在序列中的位置访问对应的元素。
支持对序列中的任意元素进行快速直接访问,甚至可以通过指针算述进行该操作。操供了在序列末尾相对快速地添加/删除元素的操作。
容器使用一个内存分配器对象来动态地处理它的存储需求。
平时用的少但需要注意的点汇合
#include<vector> #include<iostream> #include<iterator> #include<algorithm> using namespace std; int main() { vector<int> v(3); v[0] = 2; //v[0]是第0个元素 v[1] = 7; v[2] = 9; vector<int>::iterator p; p = v.insert(v.begin(), 8);//在最前面插入新元素。 cout << *p << endl;//输出8,当前迭代器指向位置 8 v.insert(v.begin() + 2, 1);//在迭代器中第二个元素前插入新元素 p = v.insert(v.end(), 3);//在向量末尾追加新元素。 cout << *p << endl;//输出3,当前迭代器指向位置 3 v.insert(v.end(), 4, 1);//在尾部插入4个1 int a[] = { 1,2,3,4 }; v.insert(v.end(), a[1], a[3]);//在尾部插入a[1]个a[3] vector<int>::iterator it; for (it = v.begin(); it != v.end();it++) { cout << *it << " "; } cout << endl; vector<int>::reverse_iterator ti;//rbegin,rend使用需要先声明反向迭代器 for (ti = v.rbegin(); ti != v.rend();ti++) { cout << *ti << " "; } cout << endl; reverse(v.begin(), v.end()); for (it = v.begin(); it != v.end();it++) { cout << *it << " "; } cout << endl; system("pause"); return 0; }列表:
1.push_back 在数组的最后添加一个数据 2.pop_back 去掉数组的最后一个数据 3.at 得到编号位置的数据 4.begin 得到数组头的指针 5.end 得到数组的最后一个单元+1的指针 6.front 得到数组头的引用 7.back 得到数组的最后一个单元的引用 8.max_size 得到vector最大可以是多大 9.capacity 当前vector分配的大小 10.size 当前使用数据的大小 11.resize 改变当前使用数据的大小,如果它比当前使用的大,填充默认值 12.reserve 改变当前vecotr所分配空间的大小 13.erase 删除指针指向的数据项 14.clear 清空当前的vector 15.rbegin 将vector反转后的开始指针返回(其实就是原来的end-1) 16.rend 将vector反转构的结束指针返回(其实就是原来的begin-1) 17.empty 判断vector是否为空 18.swap 与另一个vector交换数据
https://www.runoob.com/w3cnote/cpp-vector-container-analysis.html
https://blog.csdn.net/u010002184/article/details/77676638
