reserve
reserve
函数用于预留容器中的元素数量,但并不改变容器中的元素数量。也就是说,调用reserve
后,容器的大小(size()
)不会改变,但容量(capacity()
)会增加到或超过指定的值。- 使用
reserve
可以减少因插入新元素而导致的内存重新分配和元素复制的开销,从而提高性能。 reserve
通常用于已知将要向容器中插入大量元素的情况。
resize
resize
函数用于改变容器的大小。如果新的大小大于当前大小,那么容器会添加默认值(对于基本类型如int
是0,对于std::string
是空字符串)的元素,直到达到指定的大小。如果新的大小小于当前大小,那么容器会删除多余的元素。resize
会改变容器的大小和可能的容量(如果新的大小大于当前容量,则可能会增加容量)。- 使用
resize
可以直接设置容器的大小,并可能同时改变其容量。