карта <интервал, интервал> значения по умолчанию

std::map<int,int> mapy;
++mapy[5];

Действительно ли безопасно принять это mapy[5] всегда будет 1? Я имею в виду, будет mapy[5] всегда получайте значение по умолчанию 0 прежде '++', даже если не явно объявленный, как в моем коде?

66
задан Ciro Santilli 新疆改造中心法轮功六四事件 19 February 2017 в 14:20
поделиться

2 ответа

Как только вы обращаетесь к карте с помощью оператора [], если ключ не существует, он добавляется. Вызывается инициализатор по умолчанию типа int - поэтому он получит значение 0.

103
ответ дан 24 November 2019 в 14:57
поделиться

Да, значение по умолчанию будет по умолчанию для этого типа. Если вам нужно другое значение по умолчанию, вы можете создать класс, который ведет себя как int, но имеет другой конструктор по умолчанию.

9
ответ дан 24 November 2019 в 14:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: