void trim_capacity() noexcept; // (1) C++26
void trim_capacity(size_type n) noexcept; // (2) C++26
概要
予約ブロックを解放して容量を削減する。
要素を格納していない要素ブロック(予約ブロック)を解放することで、capacity()を削減する。
効果
- (1) : すべての予約ブロックを解放し、それに応じて
capacity()を削減する。 - (2) :
n >= capacity()がtrueである場合、何もしない。そうでない場合、capacity()をn以上の値まで削減する。
戻り値
なし
計算量
解放される予約ブロックの数に対して線形時間。
備考
*thisの要素を指すすべての参照、ポインタ、イテレータ、および終端イテレータは有効なままである。
例
#include <hive>
#include <print>
int main()
{
std::hive<int> h;
// 100要素分の容量を予約する
h.reserve(100);
std::println("capacity = {}", h.capacity());
// 予約ブロックを解放して容量を削減する
h.trim_capacity();
std::println("capacity = {}", h.capacity());
}
出力例
capacity = 100
capacity = 0
バージョン
言語
- C++26
処理系
- Clang: 22 ❌
- GCC: 16.1 ❌
- Visual C++: 2026 Update 2 ❌