Search code examples
c++stliteratormultiset

Position of a multiset lower_bound iterator


Assume, I have a multiset A = {0, 1, 1, 1, 2}. If a do the following operation:

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

It returns a iterator. I can easily print its value. But is there any way to know its position? i mean it will return 4.


Solution

  • Use 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 );
    }