通过阅读std::vector
参考资料,我了解到
在达到最大容量时调用
insert
将导致重新分配std::vector
(导致迭代器失效),因为为它分配了更大容量的新内存。目标是保持对连续数据的保证。只要我坚持低于最大容量
insert
就不会导致这种情况(并且迭代器将完好无损)。
我的问题如下:
什么时候reserve
被 自动调用insert
,有没有办法控制必须保留多少新内存?
假设我有一个初始容量为 100 的向量,当达到最大容量时,我想分配额外的 20 个字节。
有可能这样做吗?