标准库vector类型和迭代器iterator类型

对C++ Primer 中文版第4版  第三章标准库类型中的vector类型和迭代器iterator类型做一个总结。


vector称为容器,是同一种类型的对象的集合。一个容器中的所有对象都必须是同一种类型。

1.使用vector之前,必须包含相应的头文件。声明如下:

                         #include<vector>

                          using std::vector


2.vector保存何种对象的类型,通过将类型放在类模板名称后面的尖括号中来指定类型。

例如:vector<int>  ivec;             含有若干int类型对象的vector,变量名为ivec。

          vector<string>  ivec(10,"hi!");         初始化


3.vector的下标操作

C++程序员习惯于优先选用!=而不是<来编写循环判断条件。

for(vector<int>::size_type ix=0; ix != ivec.size(); ++ix)

     ivec[ix]=0;     //正确

     ivec[ix]=ix;    //错误

注:“下标”只能用于获取已存在的元素。必须是已存在的元素才能用下标操作符进行索引。通过下标操作进行赋值时,不会添加任何元素。



迭代器简介

迭代器是一种检查容器内元素并遍历元素的数据类型。

除了使用下标来访问vector对象的元素外,标准库提供来另一种访问元素的方法--就是“迭代器”。

所有的标准库容器都定义来相应的迭代器类型,而只有少数的容器支持下标操作。

1.定义

vector<int>::iterator  iter;

每个标准库容器类型都定义了一个名为iterator的成员。


2.用迭代器编写循环

for(vector<int>::iterator iter=ivec.begin();  iter!=iver.end(); ++iter)

  *iter=0;


3.const_iterator

const_iterator类型,该类型只能用于读取容器内元素,但不能改变其值。

for(vector<int>::const_iterator iter=ivec.begin();  iter!=iver.end(); ++iter)

  cout<<*iter<<endl;         //正确

  *iter=100;                       //错误



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值