Если я напишу так:
int main()
{
map<int, int> my_map;
my_map[0]++;
}
Будет гарантировано, что my_map[0] == 1? Т.е. при вызове my_map[0] создается std::pair< int const ,int>, но зануляеться ли второй аргумент, или там может быть все что угодно?
Да, гарантируется - значения фундаментальных типов инициализируются нулевым инициализатором (надеюсь, с названием не напутал... типа конструктора по умолчанию :)), который дает переменным нулевые значения (для bool
- false
).
Не забывайте, что std::map
содержит элементы с уникальным ключом(каждый ключ единчтвенный)
mapped_type&
std::map::operator [](const key_iype& k)
выполняет поиск по ключу k
, и возвращает соответствующее значение mapped_type
, а если ключ k
не найден, то в ассоциативный массив вставляется элемент с эти ключом и значением по умолчанию типа mapped_type
. Т. е. в вашем случаи my_map[0]
возвращает int()
, значение которого равен нулю, заодно вы просто инкрементировали его и получили единицу
Виртуальный выделенный сервер (VDS) становится отличным выбором
Хочу загружать в layout только выбранный сформированный виджет из контейнера, который заполняется в конструкторе класса MainWindow
В общем, я создаю игру, в которой у меня будет подобие операционной системыВ ней можно открывать, перетаскивать и выполнять прочие манипуляции...
У меня есть квадратное поле, которое я разбиваю на клетки, но размер этих клеток фиксирован и при небольшом количестве строк и столбцов на поле,...