C++ For 循环:二进制表达式的操作数无效
C++ For Loop: invalid operands to binary expression
我正在尝试将数据从一个向量复制到另一个向量,但是当我尝试编译以下内容for循环时,出现错误"二进制表达式'int'和'Card'的操作数无效":
for (int i = 0; i <= vectorOne[vecCapacity]; i++) { //step 3
vectorTwo[i] = vectorOne[i];
}
有人有什么建议吗?
我相信你的意思是
for (int i = 0; i <= vecCapacity; i++)
甚至更有可能
for (int i = 0; i < vecCapacity; i++)
错误消息非常清晰:在此循环中
for (int i = 0; i <= vectorOne[vecCapacity]; i++) { //step 3
vectorTwo[i] = vectorOne[i];
}
i
具有类型 int
,而vectorOne[vecCapacity]
具有类型 Card
,并且这些类型没有定义的运算符 <=。
所以这个循环是没有意义的。
也许你的意思是
for (int i = 0; i < vecCapacity; i++) { //step 3
vectorTwo[i] = vectorOne[i];
}
还要考虑到您必须保证 vectorTwo 的大小不小于 vectorOne 的大小或至少 vecCapacity
.
您可以使用在标头<algorithm>
中声明的标准算法std::copy
例如
#include <algorithm>
//...
std::copy( vectorOne, vectorOne + vecCapacity, vectorTwo );
你应该从 0 循环到 vectorOne 的大小。
for (int i = 0; i < vectorOne.size(); i++) { //step 3
vectorTwo[i] = vectorOne[i];
}`
`
此外,如果您这样做,请确保 vectorTwo 在循环之前足够大。
vectorTwo.resize(vectorOne.size());
相关文章:
- 错误:类型"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] 类型的操作数无效到二进制运算符
- 二进制表达式的操作数无效("无线电设备"和"常量无线电设备")