條目十七《使用「交換技巧」來修整過剩容量》

2022-02-04 03:22:16 字數 601 閱讀 1060

先說原理:

建立乙個臨時容器,把容器拷貝到臨時容器,借用拷貝建構函式只對原容器有效元素拷貝而忽略多餘的空間,然後再把臨時容器和原容器的內容互相交換,就達到容量盡可能修剪的目的。

記住!!!是盡可能修剪。因為容器,比如vector在底層的實現可能是2的倍數這樣分配記憶體的,所以會保持2的倍數的最小記憶體的容量。

看例子吧。

vectorvec;

vec.resize(1000);//這時強制把vec設定為容量是1000

for(int i = 0; i < 10; ++i)//經過迴圈vec只真正用了10個int記憶體,還剩990int記憶體

vector(vec).swap(vec);//修剪vec的容量,使其釋放多餘的記憶體容量,盡可能保持最小容量

其實string也是一樣的。這裡就不展開了。

還有一種是通過以下方法來清空容器並使其變成容器提供的最小容量。

vector().swap(vec);

原理也是上面的原理。。。

編曲技巧 使用FL Studio來製作停頓的效果

停頓效果是一種在 創作中非常常用的音效,它能起到緩衝的作用,而且能使這段旋律更具節奏感,在比較激情的歌曲中尤為常見。例如知名歌手王力巨集演唱的 火力全開 中就使用了停頓效果,為歌曲加了不少分。而我們自己在創作過程中有時也要用到停頓效果來提公升作品的層次感,所以今天就帶小夥伴們一起來製作一期停頓效果,...

SQL技巧 使用SQL子選擇來合併查詢

你是否曾經為了得到所需要的資訊而反覆查詢?子選擇,也被稱為子查詢,也許正是你在尋找的。sql的這項功能使你可以在一組結果中查詢,創造性地給結果組加以限定,或是在向資料庫的單一呼叫中將結果與乙個無關係的查詢做相關。這篇文章中我將給出幾個子選擇的例子並就何時使用他們進行討論。在乙個結果組中搜尋 子選擇的...

Cisco交換機的使用技巧和注意事項

思科公司是整個交換機的主力軍,他旗下的產品在市場中的表現非常不錯,下面文章就詳細介紹下cisco交換機的一些使用技巧和注意事項,許多單位裡面核心骨幹交換機就是以cisco的為主。思科培訓機構 一 如何讓自己輸入命令時不受到系統資訊的干擾 相信很多網管員朋友都遇到過這樣的麻煩 即通過串列埠線連線到交換...