在有序QVector中进行二进制搜索

时间:2016-06-19 17:44:15

标签: c++ linux qt5.5

我已按QVector<QString>订购qSort。我希望得到指定QString的索引,但是qBinarySearch返回Java样式的迭代器,允许向下/向后移动或指向QString(因为QVector::iteratortypedef T*)。如何为每个元素获取没有迭代的元素索引并检查。是唯一的方法来制作自己的二分搜索方法(我知道怎么做,但为什么再次发明轮子?)?

1 个答案:

答案 0 :(得分:1)

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