假设我有一个多重集A = {0,1,1,1,2}。如果执行以下操作:

multiset<int>::iterator it = A.lower_bound(2)

它返回一个迭代器。我可以轻松打印它的值。但是有什么办法知道它的位置吗?我的意思是它将返回4。

最佳答案

使用 std::distance

#include <iterator>
#include <set>

int main()
{
    multiset<int> A = { 0, 1, 1, 1, 2 };
    multiset<int>::iterator it = A.lower_bound( 2 );
    size_t dist = distance( A.begin(), it );
}

关于c++ - 多集lower_bound迭代器的位置,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34237612/

10-13 07:47
查看更多