vector resize和reserve有什么区别
时间: 2023-02-24 20:06:28 浏览: 251
`vector::resize` 和 `vector::reserve` 都是 STL 中 vector 的成员函数,它们都用于修改 vector 的大小。但是两者的区别在于:
1. `resize` 函数可以直接改变 vector 的大小,如果新的大小比原来的大,则会在 vector 的末尾增加新的元素,并且这些新的元素的值会被默认构造;如果新的大小比原来的小,则会删除末尾的元素。
2. `reserve` 函数只是修改 vector 的容量,并不会直接改变 vector 的大小,也不会构造或删除任何元素。它只是预先分配足够的空间来存储更多的元素,以避免在插入元素时不断地重新分配内存。
简单来说,`resize` 会直接改变 vector 的大小,而 `reserve` 只是预先保留内存空间,方便以后的扩容。
相关问题
vector resize和reserve的区别
vector resize 和 reserve 的区别是:
- resize 方法会改变 vector 的大小,如果新的大小比原来的大,则会在 vector 的末尾增加新的元素,如果新的大小比原来的小,则会删除 vector 的末尾的元素;
- reserve 方法只是预留内存,它并不会改变 vector 的大小,只是保证 vector 可以容纳至少指定数量的元素而不需要重新分配内存;
简而言之,resize 改变了 vector 的大小和内容,而 reserve 仅仅是预留了内存。
vector resize和reserve
vector resize 和 reserve 是 STL 中 vector 的两个常用函数。
resize 函数是用来改变 vector 的大小的,如果新的大小大于原来的大小,那么会在 vector 后面增加一些元素,而这些新增的元素的值是未定义的。
reserve 函数是用来预留 vector 的容量的,如果 reserve 的参数大于 vector 的当前容量,那么 vector 的容量会增加到参数值,但是 vector 的大小并不会发生改变。
两个函数有什么区别? resize 会改变 vector 的大小,而 reserve 只是预留容量,不改变 vector 的大小。
阅读全文