std::map的[]操作符和insert的区别
#include <map>
//...
typedef std::map<void*, HANDLE> chunk_heap_table_t;
//...
void* pChunk;
//...
chunk_heap_table[pChunk] = hHeap; //句子1
chunk_heap_table.insert(chunk_heap_table_t::value_type(pChunk, hHeap)); //句子2
DEBUG:
[数据为假设]
pChunk: 0x0000001
hHeap:0x00ab000002
结果:
用句子1:chunk_heap_table中看到的值为0x0000001,0x00ab000002 //期待的结果
用句子2:chunk_heap_table中看到的值为0x0000001,0x0000000000 //意外
可以看到值是有差别的,句子1的结果是期待的结果。
根据这个帖子http://blog.sina.com.cn/s/blog_54cae6d70100gem2.html中的说法,句子2的效率比句子1高(绿色字体部分),但是句子2的结果不对,不知道为什么,哪位高人指点一下?