我正在尝试制作游戏。在节目开始时,我想接受玩家的数量和他们的名字。我试图接受使用2D数组,但它没有成功。有没有办法接受球员的数量和他们的名字?我应该使用结构吗?请帮帮我。
答案 0 :(得分:1)
如果您不想将任何额外数据(如分数)与每个玩家相关联,则单维(1D)string
数组可以正常工作。但是如果每个玩家都有额外的数据,那么我建议使用结构并创建一个单维(1D)struct
数组。
例如:
typedef struct {
string name;
int score;
} Player;
要输入玩家数量和凭据,您可以让用户输入玩家数量,然后创建一个Player
数组,您可以循环浏览每个元素以输入名称。像:
int numPlayers = 0;
cin >> numPlayers;
Player player[numPlayers];
for (int i = 0; i < numPlayers; i++) {
cin >> player[i].name;
}
修改:如果您想拥有非固定数量的玩家,请使用向量。如果你想要固定数量的玩家,请使用数组。
答案 1 :(得分:1)
使用矢量!
int player_cnt;
cin >> player_cnt;
vector<string> player_names(player_cnt);
for (int i = 0; i < player_cnt; i++)
cin >> player_names[i];
答案 2 :(得分:0)
您通常不需要2D数组,您可以使用std::vector<char>
来保存玩家名称并使用向量上的位置来确定玩家ID,以备不时之需。
当然结构也是一个选项,你也可以在一个向量中保存结构的实例。这样你就可以在同一个数组中存储播放器的其他信息。