Вы можете сделать что-то вроде этого:
#include <iostream>
#include <vector>
#include "Player.hpp" // Your header file for Player struct.
int main()
{
std::cout << "Enter player quantity: ";
unsigned int quantity;
std::cin >> quantity;
std::vector<Player> game_players(quantity);
//...
return EXIT_SUCCESS;
}
См. Конструкторы для std::vector
.
Редактировать 1 - Динамическое распределение
Если вам не разрешено использовать std::vector
или необходимо использовать массивы, это один из методов:
int main()
{
std::cout << "Enter player quantity: ";
unsigned int quantity_of_players;
std::cin >> quantity_of_players;
Player * p_players = new Player[quantity_of_players];
//...
delete [] p_players;
return 0;
}
Приведенный выше фрагмент кода размещает контейнер проигрывателя в динамической памяти (он же куча), посколькуколичество не известно время компиляции.Память удаляется перед возвратом в операционную систему.
Редактировать 2: Передача игроков
Вы передали бы контейнер Игроков, используя ссылки:
void Print_Player_Info(const std::vector<Player>& players)
{
for (unsigned int i = 0; i < players.size(); ++i)
{
std::cout << "Player " << i << ":\n";
std::cout << " money: " << players[i].money << "\n";
std::cout << "\n";
}
}