vector的容量進行縮減

2021-06-07 14:27:34 字數 456 閱讀 7987

在c++primer 上看到vectors的容量不會進行縮減:即便是刪除元素,其references、pointers、iterators也會繼續有效,繼續指向動作發生前的位置。但是安插操作可能使這些references、pointers、iterators失效(因為安插可能導致記憶體的重新分配)。

有乙個間接縮減vector容量的小竅門:採用swap讓兩個同期交換內容後,兩者的容量也會互換:

有vectorv1;//經過大起大落、刪刪減減之後,原先有上萬條內容,現在只剩下寥寥數十條

它的size不大,但是capcity由於只是刪除元素,仍然保持者上萬條的規模

vectorv2(v1);//v2中儲存的是v1中的副本,但是v2是按需構建的,也就是說v2的size和它的capcity是比較相配的。

v1.swap(v2)//這樣一來v1和v2不僅交換了內容(其實兩者的內容是完全一模一樣的),而且把capcity都交換了。

LVM 縮減檔案系統的容量

有擴充套件就有縮減,我們在前文 lvm 擴充套件檔案系統的容量 中介紹了通過 lvm 擴充套件檔案系統的方法,本文我們接著前文的 demo 介紹通過 lvm 縮減檔案系統的方法。說明 本文的演示環境為 ubuntu 16.04。接下來我們再把它重新縮減為 15g,並移除新新增的磁碟 dev sde。...

vector 容量和大小

include using namespace std include void printvecotr vector v cout endl vector容量的和大小操作 void test01 printvecotr v1 if v1.empty 如果為真代表數為空 else 重新指定大小 v1...

vector大小與容量的關係

vector優異效能的秘訣之一,就是配置比其所容納的元素所需更多的記憶體。vector中的函式capacity 返回vector實際能夠容納的元素數量,如果超出這個數量,vector就會重新配置內部儲存器。一旦記憶體重新分配,和vector相關的所有引用 迭代器 指標都會失效,而重新分配這些有很耗時...