多重集 lower_bound 迭代器的位置

Position of a multiset lower_bound iterator

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

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

它return是一个迭代器。我可以很容易地打印出它的价值。但是有什么办法可以知道它的位置呢?我的意思是它会 return 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 );
}