Недавно я узнал (не в результате исследований, поэтому, если это не так, скажите мне, и я исправлю это), что как-то работает следующее:
std::map<T*, U*> map;
std::cout << map[key_that_is_not_in_map] << std::endl;
// OUTPUT:
// 0
Однако многие люди рекомендуют использовать std::map::find(key_.....) != std::map::end()
.
Есть ли что-то в последнем, что делает его более безопасным, или первое применимо только к указателям ключей и значений?