【发布时间】:2019-07-15 23:31:25
【问题描述】:
我正在尝试使用 for 循环迭代 2 std::vectors,但出现错误。迭代 1 个向量有效,不确定当我在 for 循环中放入另一个迭代器时出了什么问题。
#include<iostream>
#include<vector>
int main()
{
std::vector<double> x={1,2,3,4,5}, d={10,11,12,13,14},x1,x2;
/*for (std::vector<double>::iterator it1 = x.begin(),std::vector<double>::iterator it2 = d.begin();
it1!=x.end(),it2!=d.end(); ++it1,++it2 )
{
x1.push_back(*it1 + (*it2));
x2.push_back(*it1 + (*it2));
}*/
for (std::vector<double>::iterator it1 = x.begin();it1!=x.end(); ++it1 )
{
x1.push_back(*it1 );
}
return 0;
}
注释掉的代码有多个错误:qualified-id in declaration before ‘it2’ for (std::vector<double>::iterator it1 = x.begin(),std::vector<double>::iterator it2 = d.begin()); 有人可以解释这里有什么问题吗?
【问题讨论】:
-
此位
it1!=x.end(),it2!=d.end()需要是布尔语句,而不是逗号 -
@dainsleif 这是一个布尔表达式。它评估
it1!=x.end(),丢弃结果,然后评估并返回it2!=d.end()