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

Map <int, int> значения по умолчанию

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

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

4b9b3361

Ответ 1

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

Ответ 2

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