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::map의 equal_range와 같은 역할을 해요.