将QList迭代器转换为索引

时间:2014-03-12 14:28:36

标签: c++ qt

我使用qLowerBound来查找QList中的项目,但是这个函数返回一个迭代器,而我需要一个索引(我将它传递给另一个需要索引的函数)。有没有办法从QList迭代器获取索引?

2 个答案:

答案 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