【STL】Vector容器

Vector容器

0.Vector(动态数组)容器介绍

头文件

#include <vector>

插入和删除

​ 尾插(删)速度快,中间插入(删)速度慢(需要把插入部分后的全部后移)

访问

​ 可以用下标法 [target],或者**at(target)**进行访问,尽量使用at(),越界了会抛出越界信息

在这里插入图片描述

1.构造

无参构造

//简单类型
vector<int> v_int
vector<float> v_float
vector<string> v_string
//复杂类型
vector<node> v_nodes  //strcut node
vector<CA> v_CA  //class CA{}

有参构造

int arr[] = {1,2,3,4,5};
vector<int> v1(arr,arr+5);   //将数组arr存进去,左闭右开
vector<int> v2(v1.begin(),v1.end());  //将v1拷贝给v2
vector<int> v3(v1);  //用拷贝构造函数将v1拷贝给v3,等价于vector <int> v3=v1
vector<int> v4(3,10);   //存储三个10 
vector<int> v5(10); //指定空间大小为10

2.赋值

vector.assign(beg,end);   //[beg,end)区间内的数据拷贝赋值给本身,左闭右开,会覆盖原有元素
vector.assign(n,elem);    //将n个elem拷贝赋值给本身
vector& operate=(const vector &vec);  //重载等号操作符
vector.swap(vec);  //交换两个vec

3.大小

vector.size();  //返回容器元素的个数 
vector.empty(); //判断一个容器是否为空,返回值是一个bool值
vector.resize(num);  //重新指定容器的长度为num,如容器变长,则以默认值填充新位置,如果容器变短,则末尾删除超出容器长度的部分
vector.resize(num,elem);  //指定以elem填充 

4.操作

//插入
vector.push_back(2);  //尾部插入
vector.insert(vector.begin()+3,2); //在中间第三个元素前面插入一个2
vector.insert(vector.begin()+3,2,10); //在第三个元素前面插入两个10
vectorA.insert(vectorA.begin()+3,vctorB.begin(),vectorB.begin()+3); //在第三个元素前面插入B区间内的元素

//删除
vector.pop_back();  //删除末尾元素
vector.erase(vector.begin(),vector.end());  //起始到终点全部清空
vector.erase(vector.begin(),vector.begin()+3); //起始元素到第三个元素删除
vector.clear(); //清空

//遍历
vector<int> v(10,2);

	//迭代器法
vector<int>::iterator it;
for(it = v.begin();it!=v.end();it++) cout<<*it;

	//直接遍历法
for(int i=0;i<v.size();i++) cout<<v.at(i);
for(auto i:v) cout<<i;
  • 11
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值