【c++知识点】向量vector

【定义】
1、向量属于标准模板库,操作和数组类似,但能在程序运行时改变长度(数组不能);
2、向量也有基类型,存储的是基类型相同的一组值;
3、使用#include<vector>调用,位于std命名空间;

【声明】
vector<int> v;//默认v是int类型向量
1、vector<int>代表模板类,int是基类型
2、任何类型都可以作为向量的基类型
3、声明时调用基类型的默认构造函数,创建一个无元素的空向量对象

【初始化】
1、初始化前n个元素:向量会根据基类型的默认值初始化成相应零值(基类型为类,则调用类的默认构造函数初始化)
vector<int> v(n);//int类型初始化为0;
v.size()=10;
2、初始化第i个元素(i≥n)个元素,只能使用push_back
v.push_back(n);

【长度】向量中的元素个数v.size()
改变长度使用v.resize(n);//n为新长度
1、n>v.size()时,新增元素会根据基类型默认值进行初始化,v.capacity()可能会随之增大
2、n<v.size()时,前n个元素保留,第v.size()-n个元素都会丢失

【容量】
1、实际分配了内存的元素个数v.capacity()
2、v.capacity()≥v.size()
3、自动扩容:容量不足时,系统自动增加容量,常见方式是倍增
4、显式扩容:v.reserve(60)或v.reserve(v.size()+10)//注意:参数值<v.size()时容量不一定减小


【添加元素】
v.push_back(值);//不能使用方括号[]赋值
1、通过push_back实现依次添加第0,1,2……n个元素
2、c++11允许列举式初始化 vector<int> v={1,4,7,12,65};

【读取&修改元素】
1、向量元素从0开始索引,通过方括号[]读取或更改元素
2、注意[]只能修改元素的值,不能初始化元素!!!初始化请使用push_back!!!
3、当i≥v.size()时,v[i]不存在,通过v[i]读取或修改元素,可能会产生异常;

【拷贝元素】
理解:作用于基类型的赋值操作符能生成独立拷贝,则作用于向量的赋值操作符就能生成向量的独立拷贝
vector<int> v(10);
vector<int> copy;
copy=v;//对int类型的赋值操作能生成独立拷贝
v[0]=20;//修改v不会更改copy

【遍历】
常规遍历
//注意unsigned int类型
for(unsigned int i=0;i<v.size();i++){
  cout<<v[i]<<endl;
}
auto遍历
for(auto i:v){
   cout<<i<<endl; 
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值