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 は、要素の挿入と削除を定数時間で行うシーケンスコンテナです。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 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) | |
| このセクションは不完全です 理由: 例がありません | |
関連項目
forward_list |
(C++11)単方向リスト (クラステンプレート)外部リンク 1. |
|
|
|
|
std::hive |
__cpp_lib_hive |
202502L |
std::hive
|
|
|
|
| |
|
|
plf::hive
| |