我不确定为什么使用迭代器的循环运行的次数比所需的次数多

问题描述

如果我给这个程序输入 1 2 3 4 5 7,输出是:

结果是3

结果是5

结果是7

结果是9

结果是12

结果是7

vector<int> VInts;

while (cin>>Ints)
{
    VInts.push_back(Ints);
}

for (vector<int>::iterator i = VInts.begin(); i != VInts.end(); i++)
{

    vector<int>::iterator x = i + 1;
    int result = *i + *x;
    cout << "The result is" << result << endl;

    
    
}

我不知道为什么我打印了矢量的最后一个元素。为什么会这样?如果我少运行一次循环(i!= VInts.end() -1),我可以修复它,但为什么我必须这样做?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)