将QList迭代器转换为索引

Convert QList iterator to index

本文关键字:索引 转换 迭代器 QList      更新时间:2023-10-16

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

由于指针算术是在迭代器上定义的,因此可以从迭代器中减去列表开头的迭代器以获得索引:

int idx = iter-yourList.begin();

看到QList-iterator-reference

正如@Frank Osterfeld的评论所指出的,你可以使用这个:

const auto index = std::distance(yourList.begin(), currentIteratorOnYourList);

从Fluent{c++}博客查看这篇文章