gpt4 book ai didi

c++ - 如何在排序列表中找到距离大于 19.0f 的第一个元素?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:29:02 25 4
gpt4 key购买 nike

在 std::pair 的排序列表中,按距原点的距离升序排序

pair<float,float> origin;
list<pair<float,float> > points;
float distance=19.0f;

如何找到列表中距离大于 distance(19.0f) 的第一个元素?如何应用于列表二分查找? (迭代效率不够,列表很长)?有更优雅的解决方案吗?

最佳答案

列表并不适合二分查找。这是因为您只能顺序访问列表中的元素(您只能从元素k-1访问元素k) ,因此如果您必须使用列表,您别无选择,只能线性搜索大于 distance 的第一个元素。

如果您想进行二分查找,您可以使用类似 vector 的容器允许直接访问元素(如 myvector[i])

关于c++ - 如何在排序列表中找到距离大于 19.0f 的第一个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12987324/

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