迭代:二进制表达式的操作数无效
Iteration: Invalid operands to binary expression
我正在尝试迭代一组字符串,声明在这里:
std::set<std::string>aB;
,这里是std::set<int>::iterator iter;
问题在这里:
for(iter = aB.begin(); iter != aB.end(); ++iter) {
std::cout << *iter << n;
理论上,这应该打印出aB(可用建筑)的内容,但是,它给出了两个错误:
error: no viable overloaded '=' -> [for(iter = aB.begin();)
和
错误:二进制表达式的操作数无效-> [std::set
::iterator]
代替
std::set<int>::iterator iter;
使用std::set<std::string>::iterator iter;
因为你使用的是c++ 11,你也可以使用:
for(auto iter = aB.begin(); iter != aB.end(); ++iter) {
std::cout << *iter << n;
更好的是,使用范围来构造:
for(auto const& item : aB) {
std::cout << item << n;
应该使用原始集合类型的迭代器。所以在你的例子中应该是:
std::set<std::string>::iterator iter;
相关文章:
- 错误:类型"double()"和"double()"的操作数无效到二进制&quo
- 二进制表达式的操作数无效 - 使用 for 和迭代器
- int* 和 int[] 类型对二进制运算符 + 的操作数无效
- 错误:二进制'operator*' 'float'和'float[0]'类型的操作数无效
- c++ 错误:二进制"运算符+"类型"矩阵*"和"矩阵*"的操作数无效
- 二进制表达式的操作数无效?
- 二进制表达式的操作数无效("常量字符*"和"常量字符*")
- 没有变量声明为函数,但错误:二进制表达式的操作数无效
- 为什么映射迭代器显示基本操作数无效错误
- 如何修复此错误:二进制表达式的操作数无效("std::vector<double>"和"double")?
- 错误:二进制表达式的操作数无效(映射使用查找函数错误)
- C++:"错误:类型'const char*'和'const char [28]'的操作数无效到二进制'ope
- 错误:使用索引寻址和 Clang 的指令的操作数无效
- 错误:二进制'operator*' 'int [1]'和'float'类型的操作数无效
- 派生类的重载<<运算符表示操作数无效
- 错误:C++ 中二进制"operator%"类型"float"和"int"的操作数无效
- 实现 vector 时二进制表达式的操作数无效
- 提升multi_index示例:错误:二进制表达式的操作数无效
- 字符和常量字符[2] 类型的操作数无效到二进制运算符
- 二进制表达式的操作数无效("无线电设备"和"常量无线电设备")