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

FreeBSD Manual Pages

  
 
  

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

NAME
       std::unordered_map::equal_range - std::unordered_map::equal_range

Synopsis
	  std::pair<iterator,iterator>	 equal_range(	const	Key&   key  );
       (1) (since C++11)
	  std::pair<const_iterator,const_iterator>  equal_range(  const	  Key&
       (2) (since C++11)
	  key )	const;
	  template<		     class		   K		     >
       (3) (since C++20)
	  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++20)
	  const;

	  1,2)	Returns	 a  range  containing all elements with	key key	in the
       container. The
	  range	is defined by two iterators, the first pointing	to  the	 first
       element of the
	  wanted  range	 and  the second pointing past the last	element	of the
       range.
	  3,4) Returns a range containing all elements in the  container  with
       key equivalent to
	  x.  This  overload  participates  in	overload  resolution  only  if
       Hash::is_transparent
	  and KeyEqual::is_transparent are valid and each denotes a type. This
       assumes that
	  such Hash is callable	with both K and	Key type, and that  the	 KeyE-
       qual is
	  transparent,	which,	together, allows calling this function without
       constructing an
	  instance of Key.

Parameters
	  key -	key value to compare the elements to
	  x   -	a value	of any type that can be	transparently compared with  a
       key

Return value
	  std::pair  containing	a pair of iterators defining the wanted	range.
       If there	are no
	  such elements, past-the-end (see end()) iterators  are  returned  as
       both elements of
	  the pair.

Complexity
	  Average  case	 linear	 in  the  number of elements with the key key,
       worst case linear in
	  the size of the container.

Notes
	  Feature-test macro:  __cpp_lib_generic_unordered_lookup  (for	 over-
       loads (3,4))

Example
       // Run this code

	#include <iostream>
	#include <unordered_map>

	int main()
	{
	    std::unordered_map<int,char>		 map		     =
       {{1,'a'},{1,'b'},{1,'d'},{2,'b'}};
	    auto range = map.equal_range(1);
	    for	(auto it = range.first;	it != range.second; ++it) {
		std::cout << it->first << ' ' << it->second << '\n';
	    }
	}

Output:
	1 a

See also
	  find	      finds element with specific key
	  (C++11)     (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
	  (C++11)     (public member function)
	  equal_range returns range of elements	matching a specific key
		      (function	template)

http://cppreference.com		  2022.07.31	 std::unorde...:equal_range(3)

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

home | help