std::vector-他将分配多少内存(在重新分配期间)

std::vector- how much memory will he allocate (during reallocation)

本文关键字:分配 新分配 内存 vector- 多少 std      更新时间:2023-10-16

我知道,如果vector需要更多的内存,它会分配新的,有时会重新分配他的元素。我有个问题。有没有什么方法可以准确地检查vector何时分配新内存,以及(更重要的是)他将分配多少内存?

我想分配将在没有更多内存的时候开始,这就是为什么我对reallocation更感兴趣。

当一个新项目被添加到std::vector<>时并且它的容量等于大小,那么它将分配新的内存块,并将它持有的所有项目移动到新分配的内存中(如果我没有错的话,使用Microsoft编译器,它将分配1.5个当前容量的空间),然后添加新的内存。以前的内存当然会被释放

分配策略是实现定义的。您可以使用自定义分配器或内存探查器工具(如valgrind或Visual Studio)跟踪内存分配。