STL里resize和reserve的区别?
生活随笔
收集整理的這篇文章主要介紹了
STL里resize和reserve的区别?
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
vector和deque的區別?
- 兩個函數的功能是有區別
- reserve是容器預留空間
- resize是改變容器的大小,并且創建對象
- reserve函數之后一個參數,即需要預留的容器的空間
- 為實現resize的語義,resize接口做了兩個保證
兩個函數的功能是有區別
reserve是容器預留空間
但并不真正創建元素對象,在創建對象之前,不能引用容器內的元素,因此當加入新的元素時,需要用push_back()/insert()函數。
resize是改變容器的大小,并且創建對象
因此,調用這個函數之后,就可以引用容器內的對象了,因此當加入新的元素時,用operator[]操作符,或者用迭代器來引用元素對象。
其次,兩個函數的形式是有區別的:
reserve函數之后一個參數,即需要預留的容器的空間
resize函數可以有兩個參數,第一個參數是容器新的大小,第二個參數是要加入容器中的新元素,如果這個參數被省略,那么就調用元素對象的默認構造函數。初次接觸這兩個接口也許會混淆,
總結
以上是生活随笔為你收集整理的STL里resize和reserve的区别?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 台式惠普怎么u盘启动不了机 如何让惠普台
- 下一篇: 怎么分区工具设置启动分区 设置启动分区的