不多说,先看代码:
#include <IOSTREAM>
#include <VECTOR>
using namespace std;
int main()
{
cout<<"By:Sayln_wu"<<endl<<endl;
//编写10个元素的vector对象。用迭代器把每个元素值改为当前值+2.
vector<int> ivec(3,8);
cout<<"原值为:"<<endl;
int i=0;
for (vector<int>::iterator iter=ivec.begin();iter!=ivec.end();iter++)
{
i++;
cout<< *iter <<endl;
*iter=(*iter)+i;
}
//可以放在上面输出,下面是为了使用const_iterator。
cout<<"修改后的值为:"<<endl;
for(vector<int>::const_iterator citer=ivec.begin();citer!=ivec.end();citer++)
{
cout<<*citer<<endl;
}
//求vector中间值
vector<int>::iterator min = ivec.begin() +ivec.size()/2;
cout<<"中间值为:"<<*min<<endl;
return 0;
}
截图如下:
在上述代码中用到了两个iterator,一个是iterator,另一个是const_iterator。const_iterator是一个只读的迭代器。
当然还有一个是const iterator ,这个也可以,不过不能指定指定位置。所以很少使用。
*iter 是读取ivec的当前值。 *操作符为解引用操作符。
值得一看的还有最下面的求iver的中间值。
vector<int>::iterator min = ivec.begin() +ivec.size()/2;
大家思考下,如果改为 vector<int>::iterator min =( ivec.begin() +ivec.size() )/2; 结果会是什么样的呢?