调用 clear() 可清空 std::map,使 size() 返回 0 且 empty() 为 true,时间复杂度 O(n),示例显示清空前有 3 个元素,清空后为空;也可通过赋值空 map 实现,但 clear() 更高效;若存储指针,需手动释放内存或使用智能指针避免泄漏。

在C++中,清空一个 std::map 容器非常简单,可以通过调用其成员函数 clear() 来实现。这个操作会移除容器中的所有元素,使容器变为空。
使用 clear() 函数清空 map
clear() 是 std::map 提供的标准成员函数,调用后容器的大小变为0,所有键值对都被销毁。
- 不会释放容器底层内存(具体行为依赖于STL实现,但逻辑上容器为空)
- 时间复杂度为 O(n),n 是当前元素个数
- 调用后
size()返回 0,empty()返回 true
示例代码:
#include#include
重新赋值方式清空
除了 clear(),还可以通过赋值一个空的 map 来达到清空效果:
立即学习“C++免费学习笔记(深入)”;
myMap = std::map();
这种方式会构造一个新的临时 map 并与原对象交换内容,旧数据会被析构。虽然结果相同,但通常 clear() 更直观高效。
注意事项
如果 map 中存储的是指针类型,clear() 只会移除指针对应的节点,不会自动释放指针指向的堆内存。
- 若 value 是动态分配的指针(如
std::map),需先手动释放内存 - 建议优先使用智能指针(如
std::unique_ptr)避免内存泄漏
基本上就这些,调用 clear() 是最直接、清晰的清空 map 的方法。











