Ответ 1
Вы можете сделать это:
(*myFruit)["apple"] = 1;
или
myFruit->operator[]("apple") = 1;
или
map<string, int> &tFruit = *myFruit;
tFruit["apple"] = 1;
Простой вопрос, но трудно сформулировать для поисковой системы: если я создаю указатель на объект карты, как мне получить доступ и установить его элементы? Следующий код не работает.
map<string, int> *myFruit;
myFruit["apple"] = 1;
myFruit["pear"] = 2;
Вы можете сделать это:
(*myFruit)["apple"] = 1;
или
myFruit->operator[]("apple") = 1;
или
map<string, int> &tFruit = *myFruit;
tFruit["apple"] = 1;
myFruit
- это указатель на карту. Если вы удалите звездочку, то у вас будет карта, и следующий синтаксис будет работать.
В качестве альтернативы вы можете использовать оператор разыменования (*
) для доступа к карте с помощью указателя, но сначала вам нужно создать свою карту:
map<string, int>* myFruit = new map<string, int>() ;
map<string, int> *myFruit;
(*myFruit)["apple"] = 1;
(*myFruit)["pear"] = 2;
будет работать, если вам нужно сохранить его как указатель.