没有操作符“<=”匹配这些操作数
问题描述:
整个项目很长,所以我刚才包含了相关的行。没有操作符“<=”匹配这些操作数
#include "stdafx.h"
#include <iostream>
#include <string>
string list[50][50];
string a, b;
for (int i = 0; i<50; i++) {
cout << "Insert a" << endl;
cin >> a;
cout << "Insert b" << endl;
cin >> b;
list[i][i] = {
{a},
{b}
};
}
赋值运算符“=”是唯一有错误的。错误是:“无运算符”=“匹配这些操作数,操作数类型是:std :: string = {...}”
我找不出这里的问题。如果我运行程序,它会正确地分配“a”,但不是“b”。
答
在我看来,你使用二维数组感到困惑。我想你想要的是这样的:
for (int i = 0; i<50; i++) {
cout << "Insert a" << endl;
cin >> a;
cout << "Insert b" << endl;
cin >> b;
list[i][0] = a;
list[i][1] = b;
}
你的代码进一步寻找它可能是更容易适应:
std::string list[50][50];
std::string a , b;
int innerArraySize = 2;
for (int i = 0; i<50; i++)
{
for (int j = 0; j < innerArraySize; j++)
{
cout << "Insert " << (char)(j + 'a');
cin >> list[i][j];
}
}
+0
这不会编译。原始数组不可分配。 – aschepler
答
你想要的2 50个数组的数组? 然后你应该这样做:
string list[50][2];
// . . .
list[i][0] = a;
list[i][1] = b;
你不能插入两个字符串到同一个地方。此外,使用现在的索引,它只会填充数组的对角线。 – InternetAussie
你的标题是' aschepler
你认为那条线有什么作用?左边的东西只有一个字符串,但右边的是两个字符串。你如何设定一个等于另一个? –