看板 C_and_CPP 關於我們 聯絡資訊
以下是我測試小程式 參考某網頁說 vector 不管是clear erase或怎樣的 都不會回收空間於是乎用以下測試 int main(int argc, char *argv[]) { vector<int> p; int i=1; while(i<100000) { p.push_back(i); i++; } cin>>i; for(int i=0;i<1;i++) std::vector<int>().swap( p ); cin>>i; return 0; } 我用工作管理員跑 他cin之前是占領2188K cin後 占1688K 心得:恩真厲害 但是怎麼會是少500K???? sizeof(int)*100000 應該是400K呀? 請教各位 多清出來的謎樣100K 是甚麼??? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.207.187
DigiPrince:查查 vector 的 size() 和 capacity() 囉... 08/11 04:10
DigiPrince:vector 是會預支空間的... (為了避免頻繁的要求空間) 08/11 04:11
QQ29:我用capacity只能看到跑完while後的大小 swap後 就看不到了. 08/11 04:30
QQ29:我該怎麼驗證呢@@ 08/11 04:30
QQ29:喔喔我耍笨了 他印出138255 所以是4*138255 Byte嚕??!!! 08/11 04:31