網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)建站!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、小程序開發(fā)、集團企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了任縣免費建站歡迎大家使用!
前排提醒:
由于 Microsoft Docs 全是機翻。所以本文表格是我人腦補翻+審校。
如果有紕漏、模糊及時反饋。
了解每一種容器的特性、知道什么情況下用什么容器就可以。
序列容器是指在邏輯上以線性排列方式存儲給定類型元素的容器。
這些容器和數(shù)組非常類似,都是在邏輯上連續(xù)的(但內(nèi)存不一定是連續(xù)的),與數(shù)組不同的是,容器可以非常方便的動態(tài)管理,而不是固定元素大小。
當(dāng)你需要容器時,就找vector!
-- Bjarne Stroustrup
std::vector 差不多是C++當(dāng)中最常用的容器,它是一個模版類。你可以將它視作傳統(tǒng)數(shù)組的動態(tài)功能增強版本,因此它的泛用性非常高。
當(dāng)你以局部變量形式創(chuàng)建并初始化 vector 時,對象本身是存儲于棧內(nèi)存當(dāng)中,但是它所存儲的元素卻是在堆內(nèi)存當(dāng)中連續(xù)的一塊空間,因此 std::vector 對于隨機訪問效率會非常高。
vector 的存儲是自動管理的,按需擴張收縮。 vector 通常占用多于靜態(tài)數(shù)組的空間,因為要分配更多內(nèi)存以管理將來的增長。 vector 所用的方式不在每次插入元素時,而只在額外內(nèi)存耗盡時重分配。分配的內(nèi)存總量可用capacity()函數(shù)查詢。額外內(nèi)存可通過對shrink_to_fit()的調(diào)用返回給系統(tǒng)。(C++11 起)
重分配通常是性能上有開銷的操作。若元素數(shù)量已知,則reserve()函數(shù)可用于消除重分配。
-- 《C++ Reference》
#include