You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请问set成员函数lower_bound与全局lower_bound函数哪个速度更快?

set::lower_bound 与全局 lower_bound 的速度差异
  • 速度结论:set_name.lower_bound(key) 的执行速度远快于 lower_bound(set_name.begin(), set_name.end(), value),二者性能差距极大。
  • 底层原因:
    • 作为set的成员函数,lower_bound 直接利用set内部红黑树的有序特性,进行二叉搜索,时间复杂度为 O(log n)。
    • 全局的 std::lower_bound 是通用算法,无法感知容器的底层结构,只能通过迭代器逐个遍历比较,对于set这种双向迭代器容器,时间复杂度为 O(n)。
  • 场景差异:当set中的元素规模较大时(比如万级以上),全局版本的耗时会随元素数量线性增加,而成员函数的耗时增长非常平缓,几乎可以忽略。

内容的提问来源于stack exchange,提问作者TTMED

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 23:25:27