2
list<Person> lp;
...
lp.sort(PersonNameLess());

Person newPerson;
...
lp.insert(upper_bound(lp.begin(), lp.end(), 
          newPerson, PersonNameLess()), newPerson);

有効な c++ 第 3 版、198 ページ、項目 45 では、次のように述べています。

ルックアップには線形時間がかかりますが、対数の比較のみが実行されます

質問:対数数の比較のみを実行するのはなぜですか?

4

1 に答える 1

4

対数数の比較のみを実行するのはなぜですか?

リストはソートされており、upper_boundは二分探索を実行するためです。

于 2012-07-30T20:20:26.547 に答える