flat_map::equal_range

flat_map::equal_range (같은 키 구간 찾기)

flat_map에서 특정 키와 일치하는 요소의 구간을 반환하는 멤버 함수예요. 키가 유일하므로 구간은 요소 0개 또는 1개를 담아요. <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 );
  • 키가 있으면 두 반복자가 그 요소를 둘러싸는 구간 [it, it+1)을 나타내고, 없으면 삽입 위치(빈 구간)를 가리켜요.
  • flat_map은 유일 키라 구간 크기는 0 또는 1이에요.
std::flat_map<std::string, int> m{{"a",1},{"b",2}};
auto [lo, hi] = m.equal_range("b");
// lo가 b를 가리킴, hi는 그 다음

lower_bound/upper_bound를 합친 형태로, std::mapequal_range와 같은 역할을 해요.

더 알아보기 (Learn more)

cppreference