vector().swap(ivec);清記憶體,單純的clear或remove是不會把記憶體清掉的
ivec.reserve(100000);預設vector空間大小,避免因為vec分配得不夠,後期還需要重新分配空間
ivec.swap(vector(ivec)); // or vector(ivec).swap(ivec);//清掉多餘的記憶體
ivec.shrink_to_fit()
用emplace_back代替push_back,原因是使用emplace_back()時,會在容器所在的記憶體空間直接構造乙個元素,避免了額外的移動或賦值操作。
使用這種方法的前提是vector從前儲存了大量資料,比如10000000,經過各種處理後,現在只有100條,那麼向清空原來資料所占有的空間
如果你需要隨即訪問,而且關心兩端資料的插入和刪除,則應使用deque
stl一些容器
deque a deque deque n,elem n個elem初始化的deque deque beg,end 雙指標初始化 v.push front 取出第乙個元素 棧,先進後出。通過top 方法返回棧頂元素,push 壓棧,pop 出棧。效率很高,不能遍歷,不支援隨機訪問。q.front q....
一些stl 小技巧
大部分都是網上總結的 滑稽 1.一些非常實用的函式,比如說找到下乙個排列的 2.在3.vector代替queue和stack還能稍微快一些。所以不建議使用queue和stack,內建的棧和佇列出奇的慢。4.優先佇列,維護數列的極大值,效率很慢,比手寫二叉堆還慢不少,好像set都比它快些使用的話,主要...
一些webrtc gcc相關
1.google congestion control 就是webrtc中用的 webrtc通控制傳送端資料傳送位元速率來達到控制網路擁塞。draft ietf rmcat gcc 02.pdf 較早的草案draft alvestrand rmcat congestion 03.pdf 2.1 從w...