概述:
Vecotor是一个动态容器,支持随时插入和删除操作。在内存中是一连存储的,因此访问迅速。并且可以存储多种数据类型:int、指针、对象…
1. 包罗的头文件
2. 初始化
常见的初始化方式包括一维数组和二维数组
(1)一维数组:
- vector<int> a;
- vector<string*> b;
- vector<Base*> c;
- vector<int> v(n);//长度为n的数组,初始值默认为0,idx=[0, n-1]
- vector<int> v(n, 1);//v[0]到v[n-1]所有的元素初始值均为1
- vector<int> a{1, 2, 3, 4, 5};//数组a中有五个元素,数组长度就为5
复制代码 (2)二维数组:
3. 常用接口
成员函数释义v.push_back(i)在尾部加一个数据,O(1)v.pop_back()删除末了一个数据,O(1)v.size()返回实际数据个数(unsigned类型),O(1)v.begin()返回首元素的迭代器(普通来说就是地址)O(1)v.end()返回末了一个元素后一个位置的迭代器(地址)O(1)v.empty()判断是否为空,为空返回真,反之返回假 O(1)v.fornt()返回第一个数据,O(1)v.back()返回数组中的末了一个数据 ,O(1)v.clear()清除元素个数,O(N)v.resize(n,i)改变数组巨细为n,n个空间数值赋为i,如果没有默认赋值为0v.insert(it, x)向任意迭代器it插入一个元素x ,O(N)v.erase(first,last)删除[first,last)的所有元素,O(N) 4. 迭代访问
4.1 一维数组
(1)下标法:和平凡数组一样,一维数组的下标是从0到v.size()−1,访问之外的数会出现越界错误
- #include <iostream>#include <vector>
- using namespace std;int main(){ vector<int> v; for(int i = 0; i < 10; i++){ v.push_back(i); } for(int i = 0; i < 10; i++){ cout << v[i] << " "; } return 0;}/*output:0 1 2 3 4 5 6 7 8 9 */
复制代码 (2)迭代器法:雷同指针一样的访问,起首需要声明迭代器变量,和声明指针变量一样
- #include <iostream>#include <vector>
- using namespace std;int main(){ //迭代器,雷同于指针 vector<int> v1{ 1,2,3,4,5,6,7,8,9,0}; vector<int>::iterator it;//声明了一个迭代器类型的变量it,雷同于指针变量 for (it = v1.begin(); it != v1.end(); it++) { cout << *it << " "; //cout << *(it+1) << " "; v[i] 和 *(v.begin() + i) 等价 } //智能指针auto for (auto num : v1) { cout << num << " "; } return 0;}/*output:1 2 3 4 5 6 7 8 9 01 2 3 4 5 6 7 8 9 0*/
复制代码 4.2 二维数组
- #include <iostream>#include <vector>
- using namespace std;int main(){ vector<vector<int>>v;
- vector<int> v1{ 1,2,3,4 }; vector<int> v2{ 5,6,7,8 }; v.push_back(v1); v.push_back(v2); v.push_back({ 10,11,12,13 }); for (int i = 0; i < v.size(); i++) { for (int j = 0; j < v[0].size(); j++) { cout << v[i][j] << " "; } cout << endl; } return 0;}/*output:1 2 3 4 5 6 7 8 10 11 12 13 */
复制代码 参考:
https://wyqz.top/p/870124582.html
https://www.runoob.com/cplusplus/cpp-vector.html
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |