shink_to_fit是否会导致重新分配
Does shink_to_fit cause a rellocation?
收缩以拟合---这可能会导致重分配,但对矢量大小没有影响,并且不能更改其元素。
在我看来,capacity(( 总是大于 size((,我们可以使用
deallocate(finish_, endOfStorage_ - finish_);
endOfStorage_ = finish_;
因此,永远不需要重新分配。我的意见有错吗?
C++标准库的分配器模型不允许部分释放内存。如果您为 10 T
秒分配了足够的空间,那么您就有了这么多空间的单一分配。您无法删除部分分配;您只能全部解除分配。
因此,如果shrink_to_fit
要更改容量,则只能通过执行重新分配来执行此操作。
简而言之.
.是shrink_to_fit导致重新分配
请求删除未使用的容量。将容量((减少到大小((是一个不具约束力的请求。如果满足请求,这取决于实现。如果发生重新分配,则所有迭代器(包括过去的结束迭代器(和对元素的所有引用都将失效。如果未发生重新分配,则不会使迭代器或引用失效。
相关文章:
- C++ 如何在将新对象分配给另一个对象时创建新对象
- 如何增加以前由新运算符分配的 C++ std::list 数组的大小?
- 为模板参数类型中的新对象分配内存
- 新运算符分配的大小大于声明的大小.为什么
- 在C++中分配分配
- 为什么支撑初始化分配分配填充垃圾变量
- C 新操作员分配新内存
- 新不分配内存?
- 如果我的C++“新”内存分配失败,如何找出返回值
- 我可以用新的分配内存块吗?
- COM / DCOM:服务器存根不会为现有接口中的新方法分配内存
- 在线程在 C++ 中完成后将新任务分配给线程
- 只能使用CUDA中的新运算符分配有限的内存
- 与将新内容分配给向量的指针斗争
- 确定C++中新运算符分配的内存大小
- 按新内存分配
- 是否有必要使用 'new' 将新指针分配给与指向同一结构的先前存在的指针相同的结构?如果是这样,为什么?
- 用于新运算符分配的公共内存
- boost::io_service post方法是否引起新的分配?
- 如何在C++中检索由新运算符分配的对象的地址