public member function
<vector>

std::vector::clear

void clear();
void clear() noexcept;
清空内容
移除 vector 中的所有元素(这些元素将被销毁),使容器的 size0.

不保证会发生重分配,并且调用此函数不保证 vector capacity 会改变。一个强制发生重分配的典型替代方法是使用 swap
1
vector<T>().swap(x);   // clear x reallocating 

参数



返回值



示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
// clearing vectors
#include <iostream>
#include <vector>

int main ()
{
  std::vector<int> myvector;
  myvector.push_back (100);
  myvector.push_back (200);
  myvector.push_back (300);

  std::cout << "myvector contains:";
  for (unsigned i=0; i<myvector.size(); i++)
    std::cout << ' ' << myvector[i];
  std::cout << '\n';

  myvector.clear();
  myvector.push_back (1101);
  myvector.push_back (2202);

  std::cout << "myvector contains:";
  for (unsigned i=0; i<myvector.size(); i++)
    std::cout << ' ' << myvector[i];
  std::cout << '\n';

  return 0;
}

输出
myvector contains: 100 200 300
myvector contains: 1101 2202


复杂度

线性复杂度,与 size(销毁操作)成正比。
对于“可平凡销毁类型”(例如标量或 POD 类型),可以优化为恒定复杂度,此时不需要销毁元素。

迭代器有效性

所有与该容器相关的迭代器、指针和引用都将失效。

数据竞争

容器被修改。
所有包含的元素都被修改。

异常安全

无异常保证:此成员函数从不抛出异常。

另见