Конструктор по умолчанию std :: pair <> устанавливает базовые типы (int и т. Д.) В ноль?

После написания:

std::pair<int, int> x;

Я гарантированно, что x.first и x.second равны нулю? Или они могут иметь какую-то ценность?

Причина, по которой меня это беспокоит, заключается в том, что я пытаюсь определить, будет ли карта, чьи значения являются указателями, возвращать NULL, если я получу доступ к элементу, которого нет на карте. То есть, если я сделаю:

std::map<int, void*> my_map;
std::cout << int(my_map[5]) << std::endl;

тогда я гарантированно получить ноль (NULL)? Или поведение не определено?

Ответы на вопрос(3)

Ваш ответ на вопрос