最近在项目中用大量用到map/multimap,在修改容器中的key值时编绎器报错,大意是“因常量性不能被赋值”,因对STL内部机制不是十分清楚,折腾了一会始终找不到bug原因。之前在项目中也多次用到过关联容器,但操作大多是修改 value值,很少有修改key值的。没办法,google相关主题发现一篇文章恰好是讨论这方面 内容,按照文章上的方法试了下果然消除了bug。(文章链接:http://blog.sina.com.cn/s/blog_46e8477b0100f4wy.html)
该篇文章摘录 的是经典书籍《Effective STL》中的 “条款22:避免原地修改set和multiset的键”。惭愧,这本书很久以前就想买来阅读了,但一直到现在都没有付诸行动,现在趁这个时机果断买下。