STL 里 resize 和 reserve 的区别
生活随笔
收集整理的這篇文章主要介紹了
STL 里 resize 和 reserve 的区别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
resize 和 reserve 的區別
- resize()
- reserve()
- 測試代碼
resize()
改變當前容器內含有元素的數量(size()),eg: vectorv; v.resize(len);v
的 size 變為 len,如果原來 v 的 size 小于 len,那么容器新增(len-size)個元素,元素的值為
默認為 0.當 v.push_back(3);之后,則是 3 是放在了 v 的末尾,即下標為 len,此時容器是 size
為 len+1;
reserve()
改變當前容器的最大容量(capacity),它不會生成元素,只是確定這個容器允許放
NOWCODER.COM
牛客網——互聯網學習求職必備神器 名企校招歷年筆試面試真題,盡在牛客網 牛客網,數百萬大學生都在使用的免費在線學習平臺
入多少對象,如果 reserve(len)的值大于當前的 capacity(),那么會重新分配一塊能存 len 個
對象的空間,然后把之前 v.size()個對象通過 copy construtor 復制過來,銷毀之前的內存;
測試代碼
#總結
以上是生活随笔為你收集整理的STL 里 resize 和 reserve 的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 现在发票是自动验旧吗
- 下一篇: STL的array容器