64,637
社区成员
发帖
与我相关
我的任务
分享
//为啥这两个循环不一样呢?可否解释下。。//*it = (*it++) * 2 ::
//*it = *it * 2;
//++it
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> vec;
int i;
while(cin >> i && i != -1)
{
vec.push_back(i);
}
vector<int>::iterator it = vec.begin();
while (it != vec.end())
{
*it = (*it++) * 2; //这块it++自加后,左边的it会跟着改变,所以在最后一次循环的时候,左边it自加。右边越界
}
//while (it != vec.end())
//{
// *it = *it * 2;
// ++it;
//}
for(it=vec.begin();it != vec.end();++it)
{
cout<<*it<<" "<<endl;
}
return 0;
}