This question already has answers here:
Closed 3 years ago.
What is the most effective way to get the index of an iterator of an std::vector?
(7个答案)
我已按QVector<QString>订购了qSort。我想获取指定QString的索引,但是qBinarySearch返回Java风格的迭代器,允许移动next/back或指向QString的指针(因为QVector::iteratortypedef T*)。如何在不迭代每个元素和检查的情况下获取元素的索引。唯一的办法就是建立自己的二进制搜索方法(我知道怎么做,但为什么又发明了wheel?)?

最佳答案

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

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

10-11 22:42