字符串类型的 2d 数组(C++;)

2d Arrays of type string in C++;

本文关键字:C++ 数组 类型 2d 字符串      更新时间:2023-10-16

大家好,我正在尝试实现大小为 5*5 的 2d 数组,其中包含一些字符串。当 i=我尝试循环打印 2d 数组时,它在"<<"符号上给出错误,我不知道如何解决它,任何人都可以帮助我。 这是我的代码:

#include <iostream>
using namespace std;
int main()
{
string students[5][5]={"Wayne","Val","Yolanda","Zeus","Xavier",
"Yolanda","Wayne","Val","Xavier","Zeus",
"Wayne","Zeus","Xavier","Wayne","Zeus",
"Val","Yolanda","Xavier","Wayne","Zeus",
"Wayne","Yolanda","Val","Zeus","Xavier"};
for(int i=0; i<5; i++)
{
for(int j=0; j<5; j++)
{
cout<<students[i][j]<<" ";
}
cout<<endl;
}
return 0;
}

你应该包括字符串

#include <string>

然后:

#include <iostream>
#include <string>   //<-------
using namespace std;
int main()
{
string students[5][5] = { 
{"Wayne","Val","Yolanda","Zeus","Xavier"},
{"Yolanda","Wayne","Val","Xavier","Zeus"},
{"Wayne","Zeus","Xavier","Wayne" ,"Zeus"},
{"Val","Yolanda","Xavier","Wayne","Zeus"},
{"Wayne","Yolanda","Val","Zeus","Xavier"}
};
for (int i = 0; i < 5; i++)
{
for (int j = 0; j < 5; j++)
{
cout << students[i][j] << " ";
}
cout << endl;
}
return 0;
}

您正在初始化长度为 25 的单个数组。你必须像这样做初始化:

string students[5][5]={ { "Wayne","Val","Yolanda","Zeus","Xavier" },
{ "Yolanda","Wayne","Val","Xavier","Zeus" },
{ "Wayne","Zeus","Xavier","Wayne","Zeus" },
{ "Val","Yolanda","Xavier","Wayne","Zeus" },
{ "Wayne","Yolanda","Val","Zeus","Xavier" } };

而且,正如弗朗索瓦·安德里埃(François Andrieux(在评论中提到的,您还应该包含正确的标题

#include <string>

因为它定义了字符串的operator<<