【发布时间】:2019-08-16 02:44:07
【问题描述】:
我被 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' 和 '')
【问题讨论】:
-
你想处理元素,而不是迭代器。试试
*i *= *i;和cout << *i << " ";。 -
或使用 ranged-for,例如:
for (auto& i : v) -
vector<int>::iterator i;未使用。