Назад к вопросам
JuniorТеорияЧасто
Что выведет программа?
#include <iostream>
#include <map>
#include <string>
int main() {
std::map<std::string, int> m{{"a", 1}};
int b = m["b"];
std::cout << b << ' ' << m.size() << '\n';
}0 2
- Ждать
0 1:m["b"]сначала добавляет отсутствующий ключ"b"и только потом возвращает значение, поэтому размер становится2. - Ждать неопределённого поведения: новое значение инициализируется так же, как в
int x{};, то есть равно0.
- Как проверить, есть ли в
mключ"b", не добавляя его? - Почему
m["b"]не компилируется, еслиm— этоconst std::map?