A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://cplusplus.com/reference/map/map/equal_range/ below:

public member function

<map>

std::map::equal_range
pair<const_iterator,const_iterator> equal_range (const key_type& k) const;pair<iterator,iterator>             equal_range (const key_type& k);

Get range of equal elements

Returns the bounds of a range that includes all the elements in the container which have a key equivalent to k.

Because the elements in a map container have unique keys, the range returned will contain a single element at most.

If no matches are found, the range returned has a length of zero, with both iterators pointing to the first element that has a key considered to go after k according to the container's internal comparison object (key_comp).

Two keys are considered equivalent if the container's comparison object returns false reflexively (i.e., no matter the order in which the keys are passed as arguments).



Parameters
k
Key to search for.
Member type key_type is the type of the elements in the container, defined in map as an alias of its first template parameter (Key).

Return value The function returns a pair, whose member pair::first is the lower bound of the range (the same as lower_bound), and pair::second is the upper bound (the same as upper_bound).

If the map object is const-qualified, the function returns a pair of const_iterator. Otherwise, it returns a pair of iterator.

Member types iterator and const_iterator are bidirectional iterator types pointing to elements (of type value_type).


Notice that value_type in map containers is itself also a pair type: pair<const key_type, mapped_type>.

Example
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// map::equal_range
#include <iostream>
#include <map>

int main ()
{
  std::map<char,int> mymap;

  mymap['a']=10;
  mymap['b']=20;
  mymap['c']=30;

  std::pair<std::map<char,int>::iterator,std::map<char,int>::iterator> ret;
  ret = mymap.equal_range('b');

  std::cout << "lower bound points to: ";
  std::cout << ret.first->first << " => " << ret.first->second << '\n';

  std::cout << "upper bound points to: ";
  std::cout << ret.second->first << " => " << ret.second->second << '\n';

  return 0;
}

lower bound points to: 'b' => 20
upper bound points to: 'c' => 30


Complexity Logarithmic in size.

Iterator validity No changes.

Data races The container is accessed (neither the const nor the non-const versions modify the container).
No mapped values are accessed: concurrently accessing or modifying elements is safe.

Exception safetyStrong guarantee: if an exception is thrown, there are no changes in the container.

See also
map::count
Count elements with a specific key (public member function)
map::lower_bound
Return iterator to lower bound (public member function)
map::upper_bound
Return iterator to upper bound (public member function)
map::operator[]
Access element (public member function)
map::find
Get iterator to element (public member function)

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4