map::erase()方法有两个重载来移除单个项:
void erase ( iterator position );
size_type erase ( const key_type& x );我需要检查哪个版本可能更快--我猜是第一个版本,因为第二个版本可能需要调用map::find()来查找迭代器?
有人能证实吗?
谢谢!
发布于 2012-08-23 01:59:15
第一个是摊余常数复杂度,第二个是对数复杂度。常量项不太可能大到足以使第一个版本比第二个版本慢,但我想对于非常小的地图,它们之间肯定是难以区分的。
https://stackoverflow.com/questions/12078795
复制相似问题