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는 상수 시간 삽입 및 삭제 연산을 제공하는 시퀀스 컨테이너입니다.hive는 여러 메모리 블록(요소 블록)에 저장 공간을 자동으로 관리합니다. 삽입 위치는 지정되지 않으므로 컨테이너는 삭제된 요소의 메모리 위치를 재사용할 수 있습니다.
활성 블록(요소를 포함하는 요소 블록)이 비어 있으면 할당 해제되거나 예약 블록이 될 수 있습니다.
예약 블록은 요소를 저장하는 데 재사용될 때 활성 블록이 됩니다. 사용자는 reserve()을 호출하여 추가 예약 블록을 만들 수 있습니다.
삭제와 반복 모두 상수 시간 복잡도를 가집니다.
각 활성 블록의 용량은 구현에서 정의된 요소(예: 1.69)만큼 증가합니다. 사용자와 구현 모두 요소 블록의 최소 및 최대 요소 용량을 제한할 수 있습니다.
std::hive는 연산자 Container의 요구 사항을 준수하며, 연산자 == 및 !=는 예외입니다. std::hive는 또한 ReversibleContainer, AllocatorAwareContainer의 요구 사항과 SequenceContainer의 일부 요구 사항을 충족합니다.
| 이 섹션은 불완전합니다 이유: 반복자 설명 |
템플릿 매개변수
| T | - | 요소의 타입.
| ||
| 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 주어진 포인터와 같은 요소를 가리키는 반복자를 반환합니다 | |
(공개 멤버 함수)
(std::hive) |
(C++26)std::swap 알고리즘을 특수화합니다 |
(std::hive) |
(C++26) 특정 기준을 충족하는 모든 요소를 삭제합니다 |
(함수 템플릿) |
연역 가이드 |
(C++26부터)
hive_limits |
(C++26)std::hive 의 블록 용량 제한에 대한 레이아웃 정보 (클래스) |
참고
| 기능-테스트 매크로 | 값 | 표준 | 기능 |
|---|---|---|---|
__cpp_lib_hive |
202502L |
(C++26) | std::hive
|
예제
| 이 섹션은 불완전합니다 이유: 예제 없음 |
같이 보기
| 이중 연결 리스트 (클래스 템플릿) | |
(C++11) |
단일 연결 리스트 (클래스 템플릿) |
외부 링크
| 1. | plf::hive — github.com의 참조 구현
|
| 2. | 벌집(Bee hive) - Wikipedia.com |