本人没有深究过STL的具体实现,请各位大神指正。
map的下标操作符也有insert的功能。当进行如下操作时:
map<int,int> m;
m.insert(make_pair(0,1));
与
map<int,int> m;
m[0]=1;
的结果没有什么区别,只是采用后一种方式时,先对m[0]的值进行了初始化(假如初始化的值是0)。类似于执行了
m.insert(make_pair(0,0));
m[0]=1;
另外,当执行m.insert(e)操作时,如果e.first在m中,则m保持不变。