由于容器数据类型具有动态大小,我假设它们在堆上分配内存.但他们何时/如何释放这个分配的内存?
当它们超出范围时(如果容器是在堆栈中创建的),或者在容器上显式调用delete(如果是基于堆的容器),它们将被释放.发生这种情况时,将自动调用容器的析构函数,然后释放为容器(包含数据)分配的堆内存.
简单地删除容器中的元素不一定会立即释放内存,因为STL容器通常使用缓存来加快速度.请记住,新/删除操作相对昂贵.
| 归档时间: |
|
| 查看次数: |
288 次 |
| 最近记录: |