Чтобы дать некоторый контекст, я пытаюсь создать карту или вектор, который выглядит так:
Я попробовал и то, и другое, и, похоже, он не работает.
vector<Player*,Player*> regionOwners;
map<int, vector<Player*>> regionOwners;
По сути, в игре есть регионы, которые соответствуют целочисленным значениям (0-10)
В большинстве регионов может быть только 1 владелец (игрок), однако в некоторых регионах также может быть 2 владельца.
По этой причине я хочу иметь вектор, чтобы я мог перейти к regionOwners [regionNumber] [0] или regionOwners [regionNumber] [1] и получить доступ к playerObject или nullptr. Если возможно, я хочу установить максимальный размер вектора 2.
Я, по сути, хочу хранить такие примеры:
1 --> [PlayerPtr*]
2 --> [Player1Ptr*, Player2Ptr*]
3 --> [nullptr, nullptr]
4 --> [nullptr]
5 --> [Player1Ptr*, nullptr]
6 --> [nullptr, Player1Ptr*]
Я не могу инициализировать мой вектор или карту с помощью nullptrs, чтобы указать, что у региона нет владельца.
for(int i=0; i< gameMap->getVertexCount(); i++) {
if(gameMap->getVertex(i)->getData() == "outer") {
regionOwners[i].push_back({nullptr , nullptr}); // vector style
}
else if (gameMap->getVertex(i)->getData() == "inner") {
regionOwners.insert({i, {nullptr}});
}
}
Я перепробовал все варианты карт и векторов. Я в тупике.
regionOwners[i]= {nullptr , nullptr}; // vector
regionOwners.insert({nullptr, nullptr}); // vector
map<int,vector<Player*>> something;
something.insert(i, {nullptr, nullptr});
regionOwners[i].push_back({nullptr , nullptr});
regionOwners.push_back(i ,{nullptr , nullptr});
Мне было интересно, какие предложения есть у кого-нибудь о том, как решить мою проблему, так как я знаю, что, скорее всего, ошибаюсь. Я подумал об использовании вектора связанного списка, чтобы я мог просто перейти от одного узла проигрывателя к другому после того, как я определил регион.
Спасибо.