gpt4 book ai didi

c++ - 关联容器的 lower_bound 复杂度 : member function vs non-member function

转载 作者:行者123 更新时间:2023-11-30 00:43:38 29 4
gpt4 key购买 nike

setmaplower_bound(以及 upper_boundequal_range ) 具有 Log(N) 时间复杂度的成员函数。还有非成员 lower_bound 可以通过包含 algorithm header 获得。根据描述,非成员函数的复杂性对于随机访问迭代器是 Log(N),否则是线性的。 setmap 迭代器不是随机访问。这是否意味着我应该避免使用非成员函数?

最佳答案

std::lower_bound旨在用于由一对迭代器定义的排序范围,通常是来自某个容器的 beginend 。如果您将它与来自 std::setstd::map 的双向(非随机访问)迭代器一起使用,那么它将必须线性遍历范围,与随机访问迭代器不同。方法 std::set::lower_boundstd::map::lower_bound存在是因为它可以利用容器的内部结构比其自由功能对应物执行得更好。所以是的,确实,如果可以的话,在使用 std::setstd::map 时,您应该喜欢这种方法。

关于c++ - 关联容器的 lower_bound 复杂度 : member function vs non-member function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53088504/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com