Vector-不定长数组,可以是各种变量类型的数组
想要使用vector之前,先要加入#include<vector>.作者是在做opencv开发,在使用该变量不需要导入这个头文件,导入opencv的头文件即可.另外cout等的一些使用记得加上using namespace std;以及opencv的using namespace cv;
用法介绍:vector <int> a
这里声明了一个变量a,可以看作是一个不定长的数组,随着输入数据(int)数量的增多,a的长度就会自动增大
详细功能:
a.empty() 判断容器是否为空。
a.erase(pos) 删除pos位置的数据
a.erase(beg,end) 删除[beg,end)区间的数据
a.front() 传回第一个数据。
a.insert(pos,elem) 在pos位置插入一个elem拷贝
a.pop_back() 删除最后一个数据。
a.push_back(elem) 在尾部加入一个数据。
a.resize(num) 重新设置该容器的大小
a.size() 回容器中实际数据的个数。
a.begin() 返回指向容器第一个元素的迭代器
a.end() 返回指向容器最后一个元素的迭代器
标红部分说明都是指针变量
1 #include <iostream> 2 #include <opencv2/opencv.hpp> 3 4 using namespace std; 5 using namespace cv; 6 7 int main() 8 { 9 int t = -1; 10 vector<int> a; 11 for (int i = 0;i < 10;i++) { 12 a.push_back(i); 13 } 14 cout << "\ta最大是a.max_size():" <<a.max_size() << endl; 15 cout << "\ta分配了a.capacity():" << a.capacity() << endl; 16 cout << "\ta当前使用数据大小a.size():" << a.size() << endl; 17 cout << "\ta判断当前是否为空a.empty():" << a.empty() << endl; 18 19 a.erase((a.begin()+5)); 20 for (int i = 0;i < a.size();i++) 21 cout << a[i] << " "; 22 cout << endl; 23 cout << "\ta删除位置5的数据a.erase(a.begin()+5):" << endl; //说法有点错误,已修改 24 25 cout << "\ta返回第一个数据a.begin():" << *a.begin() << endl; 26 27 cout << "\ta返回最后一个数据a.end():" << *(a.end()-1) << endl; 28 cout << "\ta当前使用数据大小a.size():" << a.size() << endl; 29 a.clear(); 30 cout << "\ta移除所有数据a.clear():" << endl; 31 cout << "\ta判断当前是否为空a.empty():" << a.empty() << endl; 32 33 34 }
输出结果: