list<Person> lp;
...
lp.sort(PersonNameLess());
Person newPerson;
...
lp.insert(upper_bound(lp.begin(), lp.end(),
newPerson, PersonNameLess()), newPerson);
在有效的 c++ 第 3 版第 198 页第 45 项中,它说:
查找需要线性时间,但它只执行对数 比较次数
问题:为什么它只执行对数比较?
为什么它只执行
对数比较?
因为列表已排序,upper_bound执行二叉搜索。