unordered_map_equal_range

unordered_map_equal_range (std::unordered_map::equal_range — 동등 범위)

std::unordered_map에서 지정한 키와 동등한 모든 원소를 포함하는 범위를 반환하는 멤버 함수예요.

출처: cppreference

본문

시그니처는 다음과 같아요.

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

컨테이너에서 주어진 키를 가진 모든 원소를 포함하는 범위를 반환해요. unordered_map은 키가 고유하므로, 있으면 범위는 그 원소 하나, 없으면 equal_range의 두 이터레이터 모두 end()를 가리켜요.

매개변수

  • key: 원소들을 비교할 키 값
  • x: KeyEqual와 투명하게 비교할 수 있는 대체 값

반환값

원하는 범위를 나타내는 std::pair.

복잡도

평균 상수(amortized constant)예요.

예제

#include <iostream>
#include <unordered_map>
int main()
{
    std::unordered_map<int, char> m{{1, 'a'}, {2, 'b'}};
    auto [lo, hi] = m.equal_range(1);
    if (lo != hi) std::cout << lo->second << '\n';   // a
}

더 알아보기 (Learn more)

cppreference