c++:vector对象的增长
生活随笔
收集整理的這篇文章主要介紹了
c++:vector对象的增长
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
| c.shrink_to_fit() | 請將capacity()減小為與size()相同大小 |
| c.capacity() | 不重新分配內(nèi)存空間的話,c可以保存多少元素 |
| c.reserve(n) | 分配能容納至少n個元素的內(nèi)存空間 |
shrink_to_fit只適用于vector、string和deque;
capacity和reserve只適用于vector和string
reserve并不改變?nèi)萜髦性氐臄?shù)量,僅影響vector預先分配多大的內(nèi)存空間
輸出結(jié)果:
①可以看到當創(chuàng)建一個空的vector容器后,其中所含的元素和分配的內(nèi)存均為0;
②當其增長24個元素后,其中所含元素數(shù)量為24,而所分配的空間為28,這是依賴于標準庫的具體實現(xiàn)決定的;
③手動使用reserve()為其分配50的內(nèi)存后,其內(nèi)存變?yōu)?0,元素數(shù)量沒有改變;
④之后將size補滿至內(nèi)存空間大小,二者皆為50;
⑤再向容器中增加一個元素后,其內(nèi)存空間被分配為75,增長了原內(nèi)存空間的1/2,這是依賴于編譯器本身的;
⑥最后應用shrink_to_fit使得內(nèi)存空間減少為size的大小
了解容器大小操作后可對溢出和預分配等做進一步理解
總結(jié)
以上是生活随笔為你收集整理的c++:vector对象的增长的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 软件测试Homework1——印象最深刻
- 下一篇: mvc 短信验证发送