Namespaces
Variants

std::hive

cppreference.net에서 가져옴
 
 
 
 
헤더 <hive>
template<
    class T,
    class Allocator = std::allocator<T>
> class hive;
에 정의됨 (1) (C++26부터)
namespace pmr {
    template<class T>
    using hive = std::hive<T, std::pmr::polymorphic_allocator<T>>;
}
(2) (C++26부터)


1) std::hive는 상수 시간 삽입 및 삭제 연산을 제공하는 시퀀스 컨테이너입니다.
2) std::pmr::hive는 다형성 할당자를 사용하는 별칭 템플릿입니다.

hive는 여러 메모리 블록(요소 블록)에 저장 공간을 자동으로 관리합니다. 삽입 위치는 지정되지 않으므로 컨테이너는 삭제된 요소의 메모리 위치를 재사용할 수 있습니다.

활성 블록(요소를 포함하는 요소 블록)이 비어 있으면 할당 해제되거나 예약 블록이 될 수 있습니다.

예약 블록은 요소를 저장하는 데 재사용될 때 활성 블록이 됩니다. 사용자는 reserve()을 호출하여 추가 예약 블록을 만들 수 있습니다.

삭제와 반복 모두 상수 시간 복잡도를 가집니다.

각 활성 블록의 용량은 구현에서 정의된 요소(예: 1.69)만큼 증가합니다. 사용자와 구현 모두 요소 블록의 최소 및 최대 요소 용량을 제한할 수 있습니다.

std::hive는 연산자 Container의 요구 사항을 준수하며, 연산자 == 및 !=는 예외입니다. std::hive는 또한 ReversibleContainer, AllocatorAwareContainer의 요구 사항과 SequenceContainer의 일부 요구 사항을 충족합니다.

템플릿 매개변수

T - 요소의 타입.
요소에 부과되는 요구 사항은 컨테이너에서 실제로 수행되는 연산에 따라 달라집니다. 일반적으로 요소 타입은 완전한 타입이어야 하며 Erasable의 요구 사항을 충족해야 하지만, 많은 멤버 함수가 더 엄격한 요구 사항을 부과합니다.

Allocator - 메모리를 획득/해제하고 해당 메모리에서 요소를 생성/소멸하는 데 사용되는 할당자. 타입은 Allocator의 요구 사항을 충족해야 합니다. Allocator::value_type이 T와 같지 않으면 프로그램의 형식이 잘못되었습니다.

멤버 타입

멤버 타입 정의
value_type T
allocator_type Allocator
pointer std::allocator_traits<Allocator>::pointer
const_pointer std::allocator_traits<Allocator>::const_pointer
reference value_type&
const_reference const value_type&
size_type 구현 정의
difference_type 구현 정의
iterator 구현 정의 LegacyBidirectionalIterator ~ value_type
const_iterator 구현 정의 LegacyBidirectionalIterator ~ const value_type
reverse_iterator std::reverse_iterator<iterator>
const_reverse_iterator std::reverse_iterator<const_iterator>

데이터 멤버

멤버 설명
hive_limits current-limits (비공개) 현재 블록 용량 제한
(설명 전용 멤버 객체*)

멤버 함수

hive
를 생성합니다
(소멸자)hive
컨테이너에 값을 할당합니다
(공개 멤버 함수)
컨테이너에 값을 할당합니다
(공개 멤버 함수)
컨테이너에 값의 범위를 할당합니다
(공개 멤버 함수)
연관된 할당자를 반환합니다
(공개 멤버 함수)
반복자
시작 부분의 반복자를 반환합니다
(공개 멤버 함수)
끝 부분의 반복자를 반환합니다
(공개 멤버 함수)
역방향 시작 반복자를 반환합니다
(공개 멤버 함수)
역방향 끝 반복자를 반환합니다
(공개 멤버 함수)
용량
컨테이너가 비어 있는지 확인합니다
(공개 멤버 함수)
요소의 개수를 반환합니다
(공개 멤버 함수)
가능한 최대 요소 개수를 반환합니다
(공개 멤버 함수)
현재 할당된 저장 공간에 보유할 수 있는 요소의 개수를 반환합니다
(공개 멤버 함수)
저장 공간을 예약합니다
(공개 멤버 함수)
사용하지 않는 메모리를 해제하여 메모리 사용량을 줄입니다
(공개 멤버 함수)
예약 블록을 할당 해제하고 그에 따라 용량을 줄입니다
(공개 멤버 함수)
현재 블록 용량 제한을 반환합니다
(공개 멤버 함수)
블록 용량 기본 제한을 반환합니다
(공개 멤버 함수)
블록 용량 하드 제한을 반환합니다
(공개 멤버 함수)
주어진 용량 제한이 충족되는지 확인합니다
(공개 멤버 함수)
블록 제한 내에 있도록 활성 블록을 재할당합니다
(공개 멤버 함수)
변경자
요소를 제자리에 생성합니다
(공개 멤버 함수)
힌트를 사용하여 요소를 제자리에 생성합니다
(공개 멤버 함수)
요소를 삽입합니다
(공개 멤버 함수)
요소의 범위를 삽입합니다
(공개 멤버 함수)
요소를 삭제합니다
(공개 멤버 함수)
내용을 교환합니다
(공개 멤버 함수)
내용을 지웁니다
(공개 멤버 함수)
연산
다른 hive
에서 요소를 이동합니다
unique
연속된 중복 요소를 제거합니다
sort
요소를 정렬합니다
get_iterator
주어진 포인터와 같은 요소를 가리키는 반복자를 반환합니다

(공개 멤버 함수)

(C++26)std::swap
알고리즘을 특수화합니다
(C++26)
특정 기준을 충족하는 모든 요소를 삭제합니다

(함수 템플릿)

연역 가이드

(C++26부터)

(C++26)std::hive
의 블록 용량 제한에 대한 레이아웃 정보 (클래스)

참고

기능-테스트 매크로 값 표준 기능
__cpp_lib_hive 202502L (C++26) std::hive

예제

같이 보기

이중 연결 리스트
(클래스 템플릿)
단일 연결 리스트
(클래스 템플릿)

외부 링크

1.  plf::hive — github.com의 참조 구현
2.  벌집(Bee hive) - Wikipedia.com