vector記憶體清理情況 clear和swap

2021-06-22 11:02:21 字數 740 閱讀 7161



光clear是不釋放記憶體的,將你這段**修改了一下,你看看,應該能明白了,不明白執行一下就知道了。

#include

#include

using namespace std;

main()

cout << "未放元素時容器大小為: " << it.size() << "容器容量為: " << it.capacity() << endl; //未放元素

for(int i=0;i<100000;i++)

cout << "放元素後容器大小為: " << it.size() << "容器容量為: " << it.capacity() << endl; //放元素

it.clear();

cout << "clear後容器大小為: " << it.size() << "容器容量為: " << it.capacity() << endl; //clear

vector().swap(it);

cout << "swap後容器大小為: " << it.size() << "容器容量為: " << it.capacity() << endl; //swap

return 0;

} 執行結果:

未放元素時容器大小為: 0容器容量為: 0

放元素後容器大小為: 100000容器容量為: 131072

clear後容器大小為: 0容器容量為: 131072

swap後容器大小為: 0容器容量為: 0

Linux記憶體清理

第一類單位引數 1 b,bytes,以byte為單位顯示記憶體使用情況 2 k,kilo,以kb為單位,這也是預設值 3 m,mega,以mb為單位顯示內容使用情況 4 g,giga,以gb為單位顯示記憶體使用情況 第二類引數 1 h,human,自動將數值轉換為人類易讀形式 2 c,count,展...

Linux 記憶體清理

1.clear pagecache only.sync echo 1 proc sys vm drop caches 2.clear dentries and inodes.sync echo 2 proc sys vm drop caches 3.clear pagecache,dentries ...

vector記憶體釋放

centroidbinary.swap vector 前面的是vector 由於vector的記憶體占用空間只增不減,比如你首先分配了10,000個位元組,然後erase掉後面9,999個,留下乙個有效元素,但是記憶體占用仍為10,000個。所有記憶體空間是在vector析構時候才能被系統 empt...