vector push_back原理
时间: 2023-12-08 21:05:08 浏览: 84
C++ 中”emplace_back” 与 “push_back” 的区别
vector是C++标准库中的一个容器,它提供了动态数组的功能。其中的push_back()函数是向vector中添加元素的常用方法。
当调用push_back()函数时,vector会先检查它的容量是否已经满了。如果容量没有满,它会直接在vector的末尾插入新元素,并更新vector的大小。如果容量已经满了,它就会重新分配一块内存空间,将原有元素复制到新的空间中,并在新的空间末尾插入新元素。然后释放原有的内存空间,更新vector的容量和大小。
由于重新分配内存空间会导致复制元素的开销,因此频繁调用push_back()函数可能会降低程序的性能。为了避免这种情况,可以使用reserve()函数提前分配足够的内存空间,从而避免频繁的重新分配和复制。
阅读全文