hive
hive (std::hive — 하이브 컨테이너)
std::hive는 C++26에서 도입된 컨테이너로, 원소의 위치와 무관하게 어디서든 일정한(분할 상환 상수) 시간에 삽입·제거를 지원해요. 제거된 원소의 공간은 재사용되고 조각화되지 않는 설계예요.
출처: cppreference
본문
std::hive는 C++26 표준에 새로 추가된 컨테이너로, 원소를 모으는 데 초점을 맞춘 설계예요. 특징은 다음과 같아요.
- 원소가 어디에 있든 삽입·제거를 일정한(분할 상환 상수) 시간에 수행해요.
- 제거된 원소를 가리키던 이터레이터는 무효화되지만, 다른 원소를 가리키는 이터레이터·참조는 유효하게 유지돼요.
- 원소를 담은 메모리 블록을 관리해 메모리 조각화를 줄여요.
std::list와 달리 양방향 순회 이전에 캐시 효율을 높이려는 의도가 있어요.
아직 표준화가 진행 중이며, 구현상 지원 여부는 컴파일러 버전에 따라 달라요.
템플릿 매개변수
T: 저장된 원소의 타입.Allocator: 할당자.
멤버 타입
value_type=T,allocator_type=Allocatorsize_type,difference_type,reference,const_reference,pointer,const_pointeriterator,const_iterator— 순방향/양방향 이터레이터
멤버 함수
- 생성자/파괴자,
operator=,get_allocator - 이터레이터:
begin,end - 용량:
empty,size,max_size - 수정자:
clear,insert,emplace,erase,swap - 탐색:
contains,find,count,equal_range,lower_bound,upper_bound(정렬 여부에 따라)
참고
std::hive는 아직 확정 API가 안정화되지 않아, cppreference 문서 역시 진행 중 상태예요. 실사용 전에 컴파일러 지원 여부를 확인하세요.