• 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 << "	a最大是a.max_size():" <<a.max_size() << endl;
    15     cout << "	a分配了a.capacity():" << a.capacity() << endl;
    16     cout << "	a当前使用数据大小a.size():" << a.size() << endl;
    17     cout << "	a判断当前是否为空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 << "	a删除位置5的数据a.erase(a.begin()+5):" << endl;  //说法有点错误,已修改
    24     
    25     cout << "	a返回第一个数据a.begin():" << *a.begin() << endl;
    26 
    27     cout << "	a返回最后一个数据a.end():" << *(a.end()-1) << endl;
    28     cout << "	a当前使用数据大小a.size():" << a.size() << endl;
    29     a.clear();
    30     cout << "	a移除所有数据a.clear():" << endl;
    31     cout << "	a判断当前是否为空a.empty():" << a.empty() << endl;
    32 
    33 
    34 }

    输出结果:

    参考原文:https://blog.csdn.net/Zouziceng/article/details/78052203
  • 相关阅读:
    进程间的通讯(IPC)方式
    进程间通信IPC之--共享内存
    TMDS协议
    HDMI接口与协议
    HDMI的CEC是如何控制外围互联设备的
    SVN并行开发管理策略
    关于 javascript event flow 的一个bug
    H面试程序(15): 冒泡排序法
    android应用如何启动另外一个apk应用
    [置顶] 一份诚恳的互联网找工作总结和感想(附:怎样花两年时间去面试一个人)
  • 原文地址:https://www.cnblogs.com/2020zxc/p/15075162.html
Copyright © 2020-2023  润新知