在 vector 對(duì)象構(gòu)造期間,它先分配一個(gè)由其實(shí)現(xiàn)定義的默認(rèn)的緩存大小。一般 vector 分配的數(shù)據(jù)存儲(chǔ)初始空間是 64-256 存儲(chǔ)槽(slots)。當(dāng) vector 感覺存儲(chǔ)空間不夠時(shí),它會(huì)自動(dòng)重新分配更多的內(nèi)存。實(shí)際上,只要你愿意,你可以調(diào)用 push_back() 任何多次,甚至都不用知道一次又一次的分配是在哪里發(fā)生的。
為了存取 vector 元素,使用重載的 [] 操作符。下列循環(huán)在屏幕上顯示所有 vector 元素:
for (int n=0; n { cout<<"ISBN: "< } 第二步:優(yōu)化 在大多數(shù)情況下,你應(yīng)該讓 vector 自動(dòng)管理自己的內(nèi)存,就像我們?cè)谏厦娉绦蛑兴龅哪菢。但是,在注重時(shí)間的任務(wù)中,改寫默認(rèn)的分配方案也是很有用的。假設(shè)我們預(yù)先知道 ISBNs 的數(shù)量至少有 2000。那么就可以在對(duì)象構(gòu)造期間指出容量,以便 vector 具有至少 2000 個(gè)元素的容量: vector 除此之外,我們還可以調(diào)用 resize() 成員函數(shù): vi.resize(2000);// 建立不小于 2000 個(gè)元素的空間 這樣,便避免了中間的再分配,從而提高了效率。 2010年9月計(jì)算機(jī)等級(jí)考試成績(jī)查詢時(shí)間匯總 2011年計(jì)算機(jī)等級(jí)考試二級(jí)C++輔導(dǎo)筆記匯總
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |