gpt4 book ai didi

c++ - 在 STL 中使用返回索引进行二进制搜索?

转载 作者:太空宇宙 更新时间:2023-11-03 10:43:50 25 4
gpt4 key购买 nike

我需要一个二分查找功能。

我在标准库中找不到任何函数会返回找到的项的索引,如果找不到,将返回下一个索引的按位补码大于我查找的项目的元素。

我要找的功能是什么?

编辑:我需要将一个项目插入到已排序的 vector 中并使其保持排序。这就是为什么我需要对索引进行按位补码。

最佳答案

我很确定标准库不包含任何精确您所要求的东西。

要得到你想要的,你可能想从 std::lower_boundstd::upper_bound 开始,并将它返回的迭代器转换为索引, 如果找不到该值,则对索引进行补充。

  • lower_bound 将找到具有该值(如果有)的第一个项目的位置。
  • upper_bound 将找到具有该值的最后一项的位置(同样,如果有的话)。
  • 如果指定值不存在(或 .last() 如果没有更大的项目),两者都将返回一个迭代器到下一个更大的项目。

关于c++ - 在 STL 中使用返回索引进行二进制搜索?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27431029/

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