最終更新日時:
が更新

履歴 編集

function
<forward_list>

std::forward_list::clear(C++11)

void clear() noexcept;

概要

全ての要素を削除する

効果

forward_listオブジェクトが管理しているすべての要素を破棄する。

また、要素を指す全ての参照、ポインタ、イテレータが無効になる。past-the-end イテレータは無効にならない。

戻り値

なし

例外

投げない

計算量

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

#include <iostream>
#include <cassert>
#include <forward_list>
#include <algorithm>

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

  ls.clear();

  assert(ls.empty());

  std::for_each(ls.begin(), ls.end(), [](int x) {
    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であらためて保証を追加。