整个项目很长,所以我刚刚收录了相关的部分。
#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}
};
}
赋值运算符“=”是唯一有错误的东西。错误是:“no operator”=“匹配这些操作数。操作数类型是:std :: string = {...}”
我无法弄清楚这里的问题是什么。如果我仍然运行该程序,它会正确分配“a”,但不能“b。”
答案 0 :(得分:1)
我认为您使用2D阵列会感到困惑。我想你想要的是这样的:
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];
}
}
答案 1 :(得分:0)
你想要一个包含50个2的数组吗? 然后你应该做这样的事情:
string list[50][2];
// . . .
list[i][0] = a;
list[i][1] = b;