stl map operator [] bad?

Мои обозреватели кода отметили, что использование оператора [] карты очень плохо и приводит к ошибкам:

map[i] = new someClass;    // potential dangling pointer when executed twice

Или

if (map[i]==NULL) ...      // implicitly create the entry i in the map 

Хотя я понимаю риск после прочтения API, что insert () лучше, так как он проверяет дубликаты, что позволяет избежать появления висячего указателя, я не понимаю, что если обработать правильно, почему [] не может использоваться вообще?

Я выбираю карту в качестве своего внутреннего контейнера именно потому, что хочу использовать ее быструю и самоочевидную возможность индексирования.

Я надеюсь, что кто-то сможет спорить со мной еще больше. или встаньте на мою сторону :)

13
задан BЈовић 10 January 2012 в 09:21
поделиться