- list[meta header]
- std[meta namespace]
- list[meta class]
- function[meta id-type]
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;
}
}
- clear()[color ff0000]
- ls.empty()[link empty.md]
- C++11
- Clang: ??
- GCC: 4.7.0 [mark verified]
- ICC: ??
- Visual C++: ??
- LWG Issue 2231. DR 704 removes complexity guarantee for
clear()
- C++03までこの関数の効果は
erase(begin(), end())
だったため、それによって線形時間の計算量が保証されていたが、C++11で効果の表記が変わったために、保証がなくなってしまっていた。C++14であらためて保証を追加。
- C++03までこの関数の効果は