要使用迭代器访问矢量中的元素,但不希望修改元素是,可以使用cbegin和cend函数,他们返回const迭代器。
#include "stdafx.h"
#include <iostream>
#include <vector>
using std::cout;
using std::endl;
using std::vector;
int main(int argc,_TCHAR* argv[])
{
int n[]={1,2,3,4,5};
vector<int> mydata(std::begin(n),std::end(n));
cout<<"顺向迭代:"<<endl;
for(auto iter = mydata.cbegin(); iter != mydata.cend(); ++iter){
cout<<(*iter)<<" squared is " << (*iter)*(*iter) << endl;
}
cout<<"逆向迭代:"<<endl;
for(auto iter = mydata.crbegin(); iter != mydata.crend();iter++){
cout<<(*iter)<<" squared is " << (*iter)*(*iter) << endl;
}
<span style="white-space:pre"> </span>//iter的类型是: const_iterator 或者 cons