Namespaces
Variants

std::hive

ja.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 to value_type
const_iterator 実装定義 LegacyBidirectionalIterator to const value_type
reverse_iterator std::reverse_iterator<iterator>
const_reverse_iterator std::reverse_iterator<const_iterator>

データメンバ

メンバ 説明
hive_limits current-limits (private) 現在のブロック容量制限
(説明専用メンバオブジェクト*)

メンバ関数

hive
を構築します (パブリックメンバ関数)
hive
を破棄します (パブリックメンバ関数)
値をコンテナに代入します (パブリックメンバ関数)
assign
assign_range
値の範囲をコンテナに代入します (パブリックメンバ関数)
関連付けられたアロケータを返します (パブリックメンバ関数)
イテレータ
cbegin
先頭を指すイテレータを返します (パブリックメンバ関数)
end
rbegin
crbegin
crend
末尾を指す逆イテレータを返します (パブリックメンバ関数)
コンテナが空かどうか調べます (パブリックメンバ関数)
size
最大可能要素数を返します (パブリックメンバ関数)
capacity
現在確保されているストレージに保持できる要素数を返します (パブリックメンバ関数)
ストレージを確保します (パブリックメンバ関数)
shrink_to_fit
trim_capacity
予約ブロックを解放し、それに応じて容量を減らします (パブリックメンバ関数)
現在のブロック容量制限を返します (パブリックメンバ関数)
block_capacity_default_limits
block_capacity_hard_limits
ブロック容量のハード制限を返します (パブリックメンバ関数)
指定された容量制限が満たされているか確認します (パブリックメンバ関数)
reshape
変更操作
emplace
emplace_hint
ヒントを使用して要素をその場で構築します (パブリックメンバ関数)
要素を挿入します (パブリックメンバ関数)
insert_range
erase
要素を削除します (パブリックメンバ関数)
内容を交換します (パブリックメンバ関数)
clear
操作
splice
から要素を移動します (パブリックメンバ関数)
unique
連続する重複要素を削除します (パブリックメンバ関数)
要素をソートします (パブリックメンバ関数)
get_iterator
非メンバ関数
std::swap
(C++26)
アルゴリズムを特殊化します (関数テンプレート)
erase
erase_if
(std::hive)
特定の条件を満たすすべての要素を削除します (関数テンプレート)
推論ガイド
ヘルパークラス
hive_limits
(C++26)
におけるブロック容量制限に関するレイアウト情報 (クラス)hive
注記
マクロ
値
機能
(C++26)
このセクションは不完全です
理由: 例がありません

関連項目

(C++11)単方向リスト (クラステンプレート)外部リンク
1.

std::hive

__cpp_lib_hive 202502L std::hive



  plf::hive