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)을 순회
}
멀티맵에서 같은 키의 모든 값에 접근할 때 특히 유용한 함수예요.