c++primer之vector

标准库类型vector

使用vector, 必须包含头文件#include <vector> using std::vector;

c++语言既有类模板,也有函数模板,其中vector就是一个类模板。
模板本身不是类或函数,相反可以将模板看作为编译器生成类或者函数编写的一份说明。编译器通过模板创建类或者函数的过程称为实例化,当使用模板时,需要指出编译器应把类或函数实例化成何种类型
对于类模板来说,我们通过提供一些额外信息来指定模板到底实例化成什么样的类,需要提供哪些信息由模板来定。提供信息的方式总是这样的:即在模板名字后面跟一对尖括号,在括号内放上信息。

 例:
       vector<int> ivec;  // ivec保存int类型的对象
       vector<Sales_item> Sales_vec;  // 保存Sales_item类型的对象。
       vector<vector<string>> file;  //该向量的元素是vector对象

定义和初始化vector对象
这里写图片描述

其他vector操作
这里写图片描述

注:如果循环体内部包含有向vector对象添加的语句,则不能使用范围for循环。

例:
vector<int> v{1,2,3,4,5,6,7};
for(auto i : v)
     v.push_back(i+1);  //错误,范围for循环体内不应改变其所遍历序列的大小。

不能使用下标形式添加元素

例:
vector<int> ivec;  // 空 vector对象
for(decltype(ivec.size()) ix=0; ix!=10; ++ix)
    ivec[ix] = ix;  // 严重错误:ivec不包含任何元素
     // 正确的方法应该使用ivec.push_back(ix);

vector对象(以及string对象)的下标运算符可用于访问已存在的元素,而不能用于添加元素。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

MachineLP

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

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

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

打赏作者

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

抵扣说明:

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

余额充值