如何根据用户输入在数组中分配对象
C++: How do I assign an object within an array based on user input?
这里我有一个代理数组,我想初始化一个玩家数组。一个特工只知道他的名字。用户必须输入球员的姓名、球衣号码和球员的经纪人。在这种情况下,我希望多个玩家能够拥有相同的代理,所以我使用了指针。
// Default constructor = Agent(std::string = "")
Agent agents[2] = {"Larry", "Joe"};
// Default constructor = Player(std::string = "", int = 0, Agent* = 0)
Player players[3];
initializePlayers(players, 3);
void initializePlayers(Player players[], int playerSize)
{
string playerName, agentName;
int playerNum;
Agent *myAgent;
for(int i = 0; i < playerSize; i++)
{
cout << "Please enter the player's name: ";
getline(cin, playerName);
cout << "Please enter the player's number: ";
cin >> playerNum;
cout << "Please enter the player's agent: ";
getline(cin, agentName);
cin.ignore(1000, 'n');
// If the agent's name matches one of the names in agents array
// assign that agent to this player
Player tempPlayer(playerName, playerNum, myAgent);
players[i] = tempPlayer;
}
}
在我的注释中,我需要分配myAgent。例如,如果用户为第一个玩家输入"Larry",那么Larry应该是他的经纪人。如果用户为接下来的两个玩家输入"Joe",他们应该都有Joe作为他们的代理。我该如何做到这一点?即使是一个让我开始的想法也会有所帮助。谢谢你。
首先你最好使用这样的std::array
:
// Default constructor = Agent(std::string = "")
std::array<Agent, 2> agents = { Agent("Larry"), Agent("Joe") };
然后您可以像这样搜索代理:
myAgent = nullptr;
for (unsigned i = 0; i < agents.size(); ++i)
{
if (agentName == agents.getName())
myAgent = &agents[i];
}
相关文章:
- 在c++中为我自己的基于指针的数组分配内存的正确方法
- 具有自定义构造函数 (C++) 的类型的动态数组分配
- 如何通过 malloc 为队列数组分配内存?
- 具有动态数组分配的OpenMP嵌套循环
- 如何为数组结构的数组分配内存
- 如何为结构数组分配内存?
- cpp 数组 - 分配常量索引有效,而非常量索引不起作用
- 如何为字符指针数组分配内存?
- 在 C++ 中初始化后的数组分配
- 将数据分配给了数组分配,但程序显示了以缓冲区超支的输出
- C++函数问题中的数组分配
- 子数组分配:使用聚合对象错误的预期"{...}"进行初始化
- 为什么我的指针数组分配不起作用
- std::堆栈和堆栈溢出错误的数组分配
- 在 c++ 中是否有通过声明"implicit"数组分配?
- 在 c++ 中为 2-D "Dynamically Created"数组分配值时遇到问题
- 如何为C++数组分配指向第一个元素的指针
- 字符数组分配
- 将数组分配在固定数量的线程之间
- 为构造函数中的数组分配值