vector是一个动态数组会自动分配和管理内部的内存,使其能够动态地存储元素,具有快速的随机访问能力(O(1)时间复杂度)
内存分配:
始分配内存
当你创建一个空的vector或通过指定初始大小时,vector会分配一块内存来存储元素。这个初始内存通常比容器实际需要的要大,以容纳未来添加的元素。STL库会自动决定初始内存大小。
内存分配策略
vector的内存分配策略通常是指数增长的,也就是说,当vector的容量不足以存储新元素时,它会分配一块更大的内存,通常是原内存的两倍。这种策略可以减少频繁的内存分配和复制操作,提高性能。 当vector的内存不足以容纳新元素时,它会分配新的内存,将现有元素从旧内存复制到新内存中,然后释放旧内存。这个过程可能导致元素的重新分配,因此要谨慎处理大型vector的插入操作,因为它们可能会导致性能开销。
2024年3月5日大约 7 分钟