我陷入了C ++入门中的一个实践问题。我必须使用迭代器来循环遍历初始化的向量并平方每个元素,然后输出每个更改的元素。
#include <iostream>
#include <vector>
using std::vector;
using std::cout;
int main()
{
vector<int> v{1,2,3,4,5,6,7,8,9};
vector<int>::iterator i;
for (auto i =v.begin(); i != v.end(); i++)
i *= i;
for (auto i =v.begin(); i < v.end; i++)
cout << i << " ";
cout << endl;
}
我不断收到此消息:
[错误]'operator <'不匹配(操作数类型为'__gnu_cxx :: __ normal_iterator>'和'')
首先,您忘记了此处的括号(v.end
):
for (auto i =v.begin(); i < v.end; i++)
接下来,在这两行中,使用相同的名称定义变量,从而用另一个变量覆盖另一个变量:
vector<int>::iterator i;
for (auto i =v.begin(); i != v.end(); i++)
那是什么意思i *= i;
?
也许你提到了*i *= *i
吗?
最后,
cout << i << " ";
如果要输出值,请尝试
cout << *i << " ";
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句