最終更新日時:
が更新

履歴 編集

function
<hive>

std::hive::trim_capacity(C++26)

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

処理系

関連項目

参照