Я делал простую картографическую программу, но в итоге был задан этот вопрос. В документе C++ сказано следующее:std :: map :: operator []
Элемент доступа Если k соответствует ключу элемента в контейнере, функция возвращает ссылку на его отображаемое значение. Если k не соответствует ключу любого элемента в контейнере, функция вставляет новый элемент с этим ключом и возвращает ссылку на его отображаемое значение. Обратите внимание, что это всегда увеличивает размер контейнера на единицу, даже если для элемента не назначено сопоставленное значение (элемент создается с использованием его конструктора по умолчанию).
Часть, которую я действительно не вижу, это то, где она говорит: «элемент is constructerd использует свой конструктор по умолчанию».
Я дал ему попробовать и сделал это
std::map<string, int> m;
m["toast"];
Я просто хотел, чтобы увидеть, какое значение будет отображенный элемент «тост» быть. И это оказалось нулевым, но почему? имеют ли примитивные типы конструктор по умолчанию? или что происходит?
Что это за «документ C++»? Не похоже, что это очень точно. –
(Элемент карты * инициализирован значением *.) –
@KerrekSB, который я должен использовать? Я просто использую cplusplus.com, я делаю неправильно? – Darwin57721