C++小程序(*iter=(*iter)+i)啥意思?为何能改变第二次执行的输出结果?
#include<IOSTREAM>#include<VECTOR>usingnamespacestd;intmain(){cout<<"By:Sayln_wu"<<en...
#include <IOSTREAM>
#include <VECTOR>
using namespace std;
int main()
{
cout<<"By:Sayln_wu"<<endl<<endl;
//编写10个元素的vector对象。用迭代器把每个元素值改为当前值+2.
vector<int> ivec(10,8);
cout<<"原值为:"<<endl;
int i=0;
for (vector<int>::iterator iter=ivec.begin();iter!=ivec.end();iter++)
{
i++; cout<<"i="<<i<<endl;
cout<< *iter <<endl; system("pause");
*iter=(*iter)+i; cout<<" ??????? ######## "<<*iter<<endl;
} cout<<" ??????? "<<iter<<endl;
//可以放在上面输出,下面是为了使用const_iterator。
cout<<"修改后的值为:"<<endl;
for(vector<int>::const_iterator citer=ivec.begin();citer!=ivec.end();citer++) //和常量指针差不多const_iterator citer=ivec.begin();
{
cout<<*citer<<endl;
}
//求vector中间值
vector<int>::iterator min = ivec.begin() +ivec.size()/2;
cout<<"中间值为:"<<*min<<endl;
return 0;
} 展开
#include <VECTOR>
using namespace std;
int main()
{
cout<<"By:Sayln_wu"<<endl<<endl;
//编写10个元素的vector对象。用迭代器把每个元素值改为当前值+2.
vector<int> ivec(10,8);
cout<<"原值为:"<<endl;
int i=0;
for (vector<int>::iterator iter=ivec.begin();iter!=ivec.end();iter++)
{
i++; cout<<"i="<<i<<endl;
cout<< *iter <<endl; system("pause");
*iter=(*iter)+i; cout<<" ??????? ######## "<<*iter<<endl;
} cout<<" ??????? "<<iter<<endl;
//可以放在上面输出,下面是为了使用const_iterator。
cout<<"修改后的值为:"<<endl;
for(vector<int>::const_iterator citer=ivec.begin();citer!=ivec.end();citer++) //和常量指针差不多const_iterator citer=ivec.begin();
{
cout<<*citer<<endl;
}
//求vector中间值
vector<int>::iterator min = ivec.begin() +ivec.size()/2;
cout<<"中间值为:"<<*min<<endl;
return 0;
} 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询