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 型別),可以最佳化為恆定複雜度,此時不需要銷燬元素。

迭代器有效性

所有與該容器相關的迭代器、指標和引用都將失效。

資料競爭

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

異常安全

無異常保證:此成員函式從不丟擲異常。

另見