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