Vector

vector(向量)是一个封装了动态大小数组的顺序容器。顺序容器中的元素按照严格的线性顺序排序,可以通过在序列中的位置访问对应的元素,支持数组表示法和随机访问。wector使用一个内存分配器动态处理存储需求。使用wector时需要引入头文件#include<vector>。

(1)创建。vector能够存放各种类型的对象,可以是C++标准数据类型,也可以是结构体类型。eg:

vector<int>a;//创建一个空的vector,数据类型为int,数组为a
vector<int>a(100);//创建一个vector,数组名为a,元素个数为100,所有数的初值为0
vector<int>a(10,666);//创建一个vector,数组名为a,元素个数为10,所有数的初值为666
vector<int>b(a);//b是a的复制
vector<int>b(a.begin()+3,a.end()-3);//复制[a.begin()+3,a.end()-3]区间内的元素到vector中

         创建二维数组:

vector<int>a[5];//相当于创建5个vector,每个都是一个数组

(2)增加。 向vector中添加元素,可以从尾部添加,也可以从中间添加。需要注意的是,从中间插入时需要将插入位置之后的所有元素后移,事件复杂度为O(n),效率较低。

a.push_back(5);//在向量尾部添加一个元素5
a.insert(a.begin()+1,10);//在a.begin()+1指向元素前插入一个10
a.insert(a.begin()+1,5,10);//在a.begin()+1指向元素前插入5个10
a.insert(a.begin()+1,b,b+3);//在a.begin()+1指向元素前插入b向量的区间元素

(3)删除。可以删除尾部元素、指定位置的元素、区间,还可以清空整个向量。

a.pop_back();//删除向量中的最后一个元素。
a.erase(a.begin()+1);//删除指定位置的元素
a.erase(a.begin()+3,a.end()-3);//删除区间[first,last]中的元素
a.clear();//清空向量

(4)遍历。可以用数组表示法,也可以用迭代器对向量元素进行访问。

    for (int i = 0; i < a.size(); i++) 
    {
        cout << a[i] << endl;
    }
    for (vector<int>::iterator it = a.begin();it < a.end();it++) 
    {
        cout << *it << endl;
    }

(5)改变向量的大小。resize可以改变当前向量的大小,如果它比当前向量大,则填充默认值;如果比当前向量小,则舍弃后面的部分。

a.resize(5);//设置向量的大小为5,如果在当前向量内有8个元素,则舍弃后面3个

相关练习举例: 

 Vector练习(间谍)-CSDN博客

 

 

  • 10
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大不了_自己学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值