Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
std::multimap::equal_range(3) C++ Standard Libarystd::multimap::equal_range(3)

NAME
       std::multimap::equal_range - std::multimap::equal_range

Synopsis
	  std::pair<iterator,	iterator>   equal_range(  const	 Key&  key  );
       (1)
	  std::pair<const_iterator, const_iterator>  equal_range(  const  Key&
       (2)
	  key )	const;
	  template<		     class		   K		     >
       (3) (since C++14)
	  std::pair<iterator, iterator>	equal_range( const K& x	);
	  template< class K >
	  std::pair<const_iterator, const_iterator> equal_range(  const	 K&  x
       (4) (since C++14)
	  ) const;

	  Returns  a  range  containing	all elements with the given key	in the
       container. The
	  range	is defined by two iterators, one pointing to the first element
       that is not
	  less than key	and another pointing to	the first element greater than
       key.
	  Alternatively,   the	 first	 iterator   may	  be   obtained	  with
       lower_bound(), and the second
	  with upper_bound().

	  1,2) Compares	the keys to key.
	  3,4) Compares	the keys to the	value x. This overload participates in
       overload
	  resolution only if the qualified-id Compare::is_transparent is valid
       and denotes a
	  type.	 It  allows  calling this function without constructing	an in-
       stance of Key.

Parameters
	  key -	key value to compare the elements to
	  x   -	alternative value that can be compared to Key

Return value
	  std::pair containing a pair of iterators defining the	wanted	range:
       the first
	  pointing to the first	element	that is	not less than key and the sec-
       ond pointing to
	  the first element greater than key.

	  If there are no elements not less than key, past-the-end (see	end())
       iterator	is
	  returned  as	the  first element. Similarly if there are no elements
       greater than key,
	  past-the-end iterator	is returned as the second element.

	  Since	emplace	and unhinted insert always insert at the upper bound,
	  the order of equivalent elements in the equal	range is the order  of
       (since C++11)
	  insertion unless hinted insert or emplace_hint was used to insert an
	  element at a different position.

Complexity
	  Logarithmic in the size of the container.

Notes
		   Feature-test	      macro		    Value	   Std
       Feature
							       Heterogeneous
       comparison lookup
	  __cpp_lib_generic_associative_lookup 201304L (C++14) in  associative
       containers, for
							       overloads (3,4)

Example
       // Run this code

	#include <iostream>
	#include <map>

	int main()
	{
	    std::multimap<int, char> dict
	    {
		{1, 'A'},
		{2, 'B'},
		{2, 'C'},
		{2, 'D'},
		{4, 'E'},
		{3, 'F'}
	    };

	    auto range = dict.equal_range(2);

	    for	(auto i	= range.first; i != range.second; ++i)
		std::cout << i->first << ": " << i->second << '\n';
	}

Output:
	2: B
	2: C
	2: D

See also
	  find	      finds element with specific key
		      (public member function)
	  contains     checks  if the container	contains element with specific
       key
	  (C++20)     (public member function)
	  count	      returns the number of elements matching specific key
		      (public member function)
	  upper_bound returns an iterator to the first	element	 greater  than
       the given key
		      (public member function)
	  lower_bound  returns	an iterator to the first element not less than
       the given key
		      (public member function)
	  equal_range returns range of elements	matching a specific key
		      (function	template)

http://cppreference.com		  2024.06.10	 std::multimap::equal_range(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::multimap::equal_range&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help