flat_multimap::equal_range

flat_multimap::equal_range (키 구간 찾기)

flat_multimap에서 특정 키와 일치하는 모든 요소의 구간을 반환하는 멤버 함수예요. 중복 키는 구간으로 한 번에 얻을 수 있어요. <flat_map> 헤더, C++23부터.

출처: cppreference

본문

equal_range는 특정 키에 해당하는 전체 구간을 std::pair<iterator, iterator>로 반환해요.

std::pair<iterator, iterator> equal_range( const Key& key );
std::pair<const_iterator, const_iterator> equal_range( const Key& key ) const;
template< class K > std::pair<iterator, iterator> equal_range( const K& x );
  • 키가 있으면 그 키의 모든 요소를 포함하는 [lo, hi) 구간을 반환해요.
  • 없으면 빈 구간(삽입 위치)을 반환해요.
  • 중복 키가 많을수록 구간이 길어요.
std::flat_multimap<std::string, int> m{{"a",1},{"a",2},{"b",3}};
auto [lo, hi] = m.equal_range("a");
for (auto it = lo; it != hi; ++it) {
    // "a"의 모든 값(1,2)을 순회
}

멀티맵에서 같은 키의 모든 값에 접근할 때 특히 유용한 함수예요.

더 알아보기 (Learn more)

cppreference