C ++当std :: allocator超出范围时会发生什么?

时间:2019-07-23 14:56:42

标签: c++ allocator

std :: allocator超出范围会发生什么?它管理的资源会怎样?如果没有提前释放,是否泄漏了?

1 个答案:

答案 0 :(得分:5)

std::allocator超出范围时,它管理的资源没有任何反应。

通过std::allocator::allocate分配的任何资源都应通过调用std::allocator::deallocate显式释放。

std::allocator的任何实例都可以用于释放,而不必用于分配,因为

  

默认分配器是无状态的,即,   给定的分配器是可互换的,比较相等,可以取消分配   相同分配器类型的任何其他实例分配的内存。

https://en.cppreference.com/w/cpp/memory/allocator