最終更新日時:
が更新

履歴 編集

function
<list>

std::list::clear

void clear();          // C++03
void clear() noexcept; // C++11

概要

全ての要素を削除する

効果

listオブジェクトが管理しているすべての要素を破棄する。 また、要素を指す全ての参照、ポインタ、イテレータが無効になる。past-the-end イテレータは無効にならない。

戻り値

なし

例外

投げない

計算量

線形時間。全ての要素に対してデストラクタを呼び出す。

#include <iostream>
#include <cassert>
#include <list>

int main()
{
  std::list<int> ls = {1, 2, 3};

  ls.clear();

  assert(ls.empty());

  for (int x : ls) {
    std::cout << x << std::endl;
  }
}

出力

バージョン

言語

  • C++11

処理系

参照

  • LWG Issue 2231. DR 704 removes complexity guarantee for clear()
    • C++03までこの関数の効果はerase(begin(), end())だったため、それによって線形時間の計算量が保証されていたが、C++11で効果の表記が変わったために、保証がなくなってしまっていた。C++14であらためて保証を追加。