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个答案)
我已按
(7个答案)
我已按
QVector<QString>
订购了qSort
。我想获取指定QString
的索引,但是qBinarySearch
返回Java风格的迭代器,允许移动next/back或指向QString
的指针(因为QVector::iterator
是typedef 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