3

map :: Erase()メソッドには、1つのアイテムを削除するための2つのオーバーロードがあります。

void erase ( iterator position );
size_type erase ( const key_type& x );

どのバージョンがより高速である可能性が高いかを確認する必要があります。2番目はおそらくmap::find()を呼び出してイテレータを検索する必要があるため、最初のバージョンになると思います。

誰でも確認できますか?

ありがとう!

4

1 に答える 1

12

1つ目は償却された一定の複雑さで、2つ目は対数です。定数項が最初のバージョンを2番目のバージョンより遅くするのに十分な大きさになる可能性は低いですが、非常に小さいマップの場合、それらは互いに区別できないはずです。

于 2012-08-22T17:59:14.797 に答える