public member function
std::multimap::lower_bound
<map>
iterator lower_bound ( const key_type& x );
const_iterator lower_bound ( const key_type& x ) const;
Return iterator to lower bound
Returns an iterator pointing to the first element in the container whose key does not compare less than
x (using the container's comparison object), i.e. it is either equal or greater.
Unlike
upper_bound, this member function returns an iterator to the element also if it compares equal to
x and not only if it compares greater.
Notice that, internally, all the elements in a
multimap container are always ordered by their keys following the criterion defined by its
comparison object. Therefore, all the elements that follow the one returned by this function will have a key that also compare greater than or equal to
x.
Parameters
- x
- Key value to be compared.
key_type is a member type defined in multimap containers as an alias of Key, which is the first template parameter and the type of the keys for the elements stored in the container.
Return value
An iterator to the the first element in the container whose key does not compare less than
x.
Both
iterator and
const_iterator are member types. In the
multimap class template, these are
bidirectional iterators.
Dereferencing this iterator accesses the element's value, which is of type
pair<const Key,T>.
Example
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
// multimap::lower_bound/upper_bound
#include <iostream>
#include <map>
using namespace std;
int main ()
{
multimap<char,int> mymultimap;
multimap<char,int>::iterator it,itlow,itup;
mymultimap.insert(pair<char,int>('a',10));
mymultimap.insert(pair<char,int>('b',121));
mymultimap.insert(pair<char,int>('c',1001));
mymultimap.insert(pair<char,int>('c',2002));
mymultimap.insert(pair<char,int>('d',11011));
mymultimap.insert(pair<char,int>('e',44));
itlow=mymultimap.lower_bound ('b'); // itlow points to b
itup=mymultimap.upper_bound ('d'); // itup points to e (not d)
// print range [itlow,itup):
for ( it=itlow ; it != itup; it++ )
cout << (*it).first << " => " << (*it).second << endl;
return 0;
}
|
b => 121
c => 1001
c => 2002
d => 11011
|
Complexity
Logarithmic in
size.
See also
- multimap::upper_bound
- Return iterator to upper bound (public member function)
- multimap::equal_range
- Get range of equal elements (public member function)
- multimap::find
- Get iterator to element (public member function)
- multimap::count
- Count elements with a specific key (public member function)