Это довольно ограниченный случай, но, судя по полученным мною комментариям, стоит отметить.
Я видел, как люди в прошлом использовали карты в виде
map< const key, const val> Map;
, чтобы избежать случаев случайной перезаписи, но затем продолжить писать в некоторых других битах кода:
const_cast< T >Map[]=val;
Их причина сделать это, насколько я помню, заключалась в том, что они были уверены, что в этих определенных фрагментах кода они не будут перезаписывать значения карты; следовательно, продолжим работу с более «читаемым» методом []
.
У меня никогда не было прямых проблем с кодом, написанным этими людьми, но до сегодняшнего дня я твердо убежден, что риски - пусть даже небольшие - не следует принимать, когда их легко избежать.
В тех случаях, когда вы имеете дело со значениями карты, которые абсолютно не должны быть перезаписаны , используйте insert
. Не делайте исключений просто для удобства чтения.