c++ - 有序 QVector 中的二进制搜索

标签 c++ linux qt5.5

<分区>

我已经订购了 QVector<QString>通过 qSort .我想获取指定的索引 QString ,但是qBinarySearch返回 Java 风格的迭代器,允许移动下一个/后退或指向 QString 的指针(因为 QVector::iteratortypedef T* )。如何在不对每个元素进行迭代和检查的情况下获取元素索引。唯一的办法是自己做二分查找法吗(我知道怎么做,但为什么又要发明轮子?)?

最佳答案

根据 http://doc.qt.io/qt-5/qtalgorithms-obsolete.html这些算法已过时,建议您改用 std::binary_search(或 std::lower_bound)。它们返回随机访问迭代器,因此将它们转换为索引既便宜又容易。

关于c++ - 有序 QVector 中的二进制搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37910065/

相关文章:

node.js - 如何基于 GitHub webhook 自动化部署 docker?

c++ - 使用new运算符进行动态内存分配,类型转换问题

c++ - 我无法将 C++ 源文件添加到空项目

linux - webpack --watch 构建一次后退出

linux - 从 X 列剪切到制表符分隔文件的末尾

qt - 升级到 qt 5.5.0 后,我收到了 QML 导入的警告

qt - 强制 QWebEngine 使用软件渲染

c++ - qt_screen 的编译问题

c++ - 强制调用所有基类中的方法

c++ - 验证值的函数在调用 1 个数字时返回 true,但当调用 2 个或更多数字时即使它为 true 也返回 false