标签: c++ qt
我使用qLowerBound来查找QList中的项目,但是这个函数返回一个迭代器,而我需要一个索引(我将它传递给另一个需要索引的函数)。有没有办法从QList迭代器获取索引?
QList
答案 0 :(得分:8)
您可以从迭代器中将迭代器减去列表的开头以获取索引,因为指针运算是在迭代器上定义的:
int idx = iter-yourList.begin();
请参阅QList-iterator-reference
答案 1 :(得分:2)
正如@Frank Osterfeld 的 comment 所指出的,你可以使用这个:
const auto index = std::distance(yourList.begin(), currentIteratorOnYourList);
从 Fluent{C++} 博客中查看此 article。