我应该使用哪种数据类型?

时间:2019-01-27 08:24:57

标签: c++

我真的是C ++的新手,我对某些东西感到困惑。 到目前为止,我已经实现了:

  • 创建了一个名为CPlayer的类

我接下来要做的是:

  • 为每个单独的播放器创建一个数据类型(数组/地图/或其他)以存储CPlayer。 (PS:每个玩家可以具有与另一个玩家完全不同的ID,例如:玩家1的ID为1,玩家2的ID为5)

在松鼠中,我可以这样做:

local playerInfo = {}; // Create a table
playerInfo[ playerId ]      <-  CPlayer();
// To remove it -
playerInfo.rawdelete( playerId );

不确定用C ++再现它的最佳方式。

2 个答案:

答案 0 :(得分:5)

刚刚查看了Squirrel中的表是什么,从阅读上面的问题看,您想要的东西似乎是C ++版本

#include <map>

std::map<int, CPlayer> playerInfo;

相当于playerInfo[ playerId ] <- CPlayer();

playerInfo[playerId] = CPlayer();

等于playerInfo.rawdelete( playerId );

playerInfo.erase(playerId);

更多信息here

答案 1 :(得分:0)

您可以使用std :: map,如下所示。下面的示例应该对用法有一个清晰的认识。

std::map<into, PlayersInfo> mapPlayerInfo:
int nPlayerId1 = 1; // Player 1 Id sample
int nPlayerId2 = 2; // Player 2 Id sample

PlayerInfo player1(nPlayerId1,...); // Additional arguments to constructor if required
mapPlayerInfo[nPlayerId1] = player1;

PlayerInfo player2(nPlayerId2,...); // Sample 2
mapPlayerInfo[nPlayerId2] = player2;

//Deleting based on player Id
mapPlayerInfo.erase(nPlayerId1);