vector

作者: ad丶leo | 来源:发表于2019-01-29 21:40 被阅读0次

vector

初始化

vector<int> a ; //声明一个int型向量a
vector<int> a(10) ; //声明一个初始大小为10的向量
vector<int> a(10, 1) ; //声明一个初始大小为10且初始值都为1的向量
vector<int> b(a) ; //声明并用向量a初始化向量b
vector<int> b(a.begin(), a.begin()+3) ; //将a向量中从第0个到第2个(共3个)作为向量b的初始值
vector< vector<int> > b(10, vector<int>(5)); //创建一个10*5的int型二维向量

插入 - insert

a.insert(a.begin(), 1000); //将1000插入到向量a的起始位置前
a.insert(a.begin(), 3, 1000) ; //将1000分别插入到向量元素位置的0-2处(共3个元素)

vector<int> a(5, 1) ;
vector<int> b(10) ;
b.insert(b.begin(), a.begin(), a.end()) ; //将a.begin(), a.end()之间的全部元素插入到b.begin()前

删除 - erase,clear

a.erase(a.begin()) ; //将起始位置的元素删除
a.erase(a.begin(), a.begin()+3) ; //将(a.begin(), a.begin()+3)之间的元素删除
a.clear(); //移除a所有元素

赋值

vector<int> c.
c.assign(a.begin(),a.end()):将[beg; end)区间中的数据赋值给c
c.assign(n,elem):将n个elem的拷贝赋值给c

其他

a.empty(); //判断容器是否为空
a.front(); //传回第一个数据。
a.back(); //传回最后一个数据
a.pop_back(); //删除最后一个数据。
a.push_back(elem); //在尾部加入一个数据。
a.resize(num); //重新设置该容器的大小,如果它比当前使用的大,者填充默认值
a.reserve(); //改变当前vecotr所分配空间的大小,
a.size(); //回容器中实际数据的个数。
a.capacity(); //当前vector分配的大小
a.begin(); //返回指向容器第一个元素的迭代器
a.end(); //返回指向容器最后一个元素的迭代器
a.rbegin(); //将vector反转后的开始指针返回(其实就是原来的end-1)
a.rend(); //将vector反转后的结束指针返回(其实就是原来的begin-1)
a.at(i),a[i]; //返回第i个元素

总结

进行pop_back操作时,capacity并不会因为vector容器里的元素减少而有所下降,还会维持操作之前的大小。对于vector容器来说,如果有大量的数据需要进行push_back,应当使用reserve()函数提前设定其容量大小,否则会出现许多次容量扩充操作,导致效率低下。

vector以一块连续内存存放元素,对vector进行随机访问效率很高,但是对vector进行除末端以外位置的插入或者删除操作会缺乏效率。vector适合表示数列。

相关文章

  • c++常用数据结构

    问题:vector与数组的区别? 1、vector vector v;//创建vector v....

  • 指针

    ①动态指针问题. vector * pvt = new vector [100]; vector * tt; tt...

  • 2021-12-01 opencv findContours a

    std::vector contours; std::vector hi...

  • 13.C++ vector 操作

    vector初始化 vector大小 数组方式操作vector 迭代器方式操作vector 反向迭代器操作vect...

  • c++零散知识

    1、vector vector对象内存增长原理,当向vector添加新元素而vector没有足够的内存保存新元素时...

  • vector

    一、vector介绍:可边长数组1、vector的定义:vector name;注:vecto...

  • Collection-Vector

    jdk版本:1.8.0_77参考文档:jdk 1.8 docs Vector类图 Vector特点 Vector对...

  • vector 简单用法

    vector 简单用法 数组传进vector方式: int a[3]={1,2,3} vector test;...

  • 点乘与叉乘

    public static Vector3 Cross(Vector3 lhs, Vector3 rhs);叉乘的...

  • 1.两数之和 by 2018-04-19

    class Solution {public:vector twoSum(vector & nums, int ...

网友评论

      本文标题:vector

      本文链接:https://www.haomeiwen.com/subject/ttverqtx.html