我对C ++中的deque容器有一些疑问。
resize()[C98]和shrink_to_fit()[C11]有什么区别?
我了解到,当deque变满时,它会分配一小块额外的内存来为其添加新元素。我想知道新分配的内存块的大小。
感谢。
答案 0 :(得分:1)
deque有2个相关属性:容量和大小。容量是我们为其分配内存的元素数。 Size是容器中当前元素的数量。
resize()
通常只会将容器的大小修改为预期值。 容量通常不会改变。
shrink_to_fit()
会请求deque释放额外的内存,以便内部容量减少到等于容器的大小。
在C ++ 11之前,没有明显的方法来请求容器减少容量。
这是实现定义。