std::vector clear() 方法
- 自 C++20 起
- 自 C++11 起
- 直到 C++11
// Non const version only
constexpr void clear() noexcept;
// Non const version only
void clear() noexcept;
// Non const version only
void clear();
从容器中擦除所有元素。此调用后,size()
返回零。
保持 vector 的capacity()
不变。
注意
标准对容量变化的限制在 reserve()
的规范中。
失效
使指向所包含元素的任何引用、指针或迭代器失效。任何end()迭代器也失效。
参数
(无)
返回值
(无)
复杂度
与容器大小呈线性关系 - O(size())。
示例
#include <algorithm>
#include <iostream>
#include <vector>
int main()
{
std::vector<int> container{1, 2, 3};
auto print = [](const int& n) { std::cout << " " << n; };
std::cout << "Before clear:";
std::for_each(container.begin(), container.end(), print);
std::cout << "\nSize=" << container.size() << ", Capacity=" << container.capacity() << '\n';
std::cout << "Clear\n";
container.clear();
std::cout << "After clear:";
std::for_each(container.begin(), container.end(), print);
std::cout << "\nSize=" << container.size() << ", Capacity=" << container.capacity() << '\n';
}
输出
Before clear: 1 2 3
Size=3, Capacity=3
Clear
After clear:
Size=0, Capacity=3