Подтвердить что ты не робот

Как получить доступ к элементам С++-карты из указателя?

Простой вопрос, но трудно сформулировать для поисковой системы: если я создаю указатель на объект карты, как мне получить доступ и установить его элементы? Следующий код не работает.

map<string, int> *myFruit;
myFruit["apple"] = 1;
myFruit["pear"] = 2;
4b9b3361

Ответ 1

Вы можете сделать это:

(*myFruit)["apple"] = 1;

или

myFruit->operator[]("apple") = 1;

или

map<string, int> &tFruit = *myFruit;
tFruit["apple"] = 1;

Ответ 2

myFruit - это указатель на карту. Если вы удалите звездочку, то у вас будет карта, и следующий синтаксис будет работать.

В качестве альтернативы вы можете использовать оператор разыменования (*) для доступа к карте с помощью указателя, но сначала вам нужно создать свою карту:

map<string, int>* myFruit = new map<string, int>() ;

Ответ 3

map<string, int> *myFruit;
(*myFruit)["apple"] = 1;
(*myFruit)["pear"] = 2;

будет работать, если вам нужно сохранить его как указатель.