关于C++ STL中的map,通过键值进行删除:
size_type map::erase ( const key_type& x );
删除一个不存在的键是否合法?也就是说,下面的代码片段是否可行?
map<char,int> mymap;
mymap['c']=30;
mymap.erase('c');
mymap.erase('c');
mymap.erase('D');
干杯
关于C++ STL中的map,通过键值进行删除:
size_type map::erase ( const key_type& x );
删除一个不存在的键是否合法?也就是说,下面的代码片段是否可行?
map<char,int> mymap;
mymap['c']=30;
mymap.erase('c');
mymap.erase('c');
mymap.erase('D');
干杯
是的,事实上,std::map::erase()
返回一个 size_type 类型的值,用以表示删除的键值对数量。因此,当 map 中没有被删除的键值对时,返回 0,有被删除的键值对时,返回 1。
在这种情况下,我的mymap.erase('D')会返回0,这是完全正常的。