Мои обозреватели кода указали на то, что использование оператора [] на карте очень плохое и приводит к ошибкам:
map[i] = new someClass; // potential dangling pointer when executed twice
Или
if (map[i]==NULL) ... // implicitly create the entry i in the map
Хотя я понимаю риск после прочтения API, что insert()
лучше, потому что он проверяет наличие дубликата, таким образом, можно избежать обвинчивания указателя, я не понимаю, что если правильно обрабатывать, то почему []
не может использоваться в все?
Я выбираю карту как свой внутренний контейнер именно потому, что хочу использовать ее быструю и самоочевидную возможность индексирования.
Надеюсь, кто-то может либо поспорить со мной, либо встать на мою сторону :)