vector::resize
和 vector::reserve
都是 STL 中 vector 的成员函数,它们都用于修改 vector 的大小。但是两者的区别在于:
resize
函数可以直接改变 vector 的大小,如果新的大小比原来的大,则会在 vector 的末尾增加新的元素,并且这些新的元素的值会被默认构造;如果新的大小比原来的小,则会删除末尾的元素。reserve
函数只是修改 vector 的容量,并不会直接改变 vector 的大小,也不会构造或删除任何元素。它只是预先分配足够的空间来存储更多的元素,以避免在插入元素时不断地重新分配内存。