Vector-不定长数组,可以是各种变量类型的数组

  想要使用vector之前,先要加入#include<vector>.作者是在做opencv开发,在使用该变量不需要导入这个头文件,导入opencv的头文件即可.另外cout等的一些使用记得加上using namespace std;以及opencv的using namespace cv;

  用法介绍:vector <int> a

  这里声明了一个变量a,可以看作是一个不定长的数组,随着输入数据(int)数量的增多,a的长度就会自动增大

  详细功能:

1.at                得到编号位置的数据
2.back            得到数组的最后一个单元的引用
3.max_size     得到vector最大可以是多大
4.capacity       当前vector分配的大小
5.reserve      改变当前vecotr所分配空间的大小
6.erase         删除指针指向的数据项
7.rbegin        将vector反转后的开始指针返回(其实就是原来的end-1)
8.rend          将vector反转构的结束指针返回(其实就是原来的begin-1)
9.swap         与另一个vector交换数据  
      其他详细的函数使用
         a.clear()         移除容器中所有数据。

                             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 }

输出结果:

 

 

参考原文:https://blog.csdn.net/Zouziceng/article/details/78052203
posted @ 2021-07-29 15:07  兴财啊  阅读(180)  评论(0编辑  收藏  举报