Re: [問題] 清除vector所占空間的疑問

看板C_and_CPP作者 (幸福!)時間14年前 (2009/08/13 23:33), 編輯推噓0(0012)
留言12則, 4人參與, 最新討論串2/2 (看更多)
※ 引述《QQ29 (我愛阿蓉)》之銘言: : 以下是我測試小程式 : 參考某網頁說 vector 不管是clear erase或怎樣的 都不會回收空間於是乎用以下測試 我有個問題,既然clear和erase不會回收空間,那這兩個的意義到底是 什麼呢?囧? 反正只要是想回收空間就是用swap嘛? --

11/02 21:11,
我在香港迪士尼有遇到邱淑貞 和她坐同艘船~搞到最後 我
11/02 21:11

11/02 21:12,
就射出來了
11/02 21:12

11/02 21:12,
們都在看她 沒有人聽解說人員講話~~她本人人超好~~一聽
11/02 21:12

11/02 21:13,
就射出來了
11/02 21:13

11/02 21:12,
到我們是台灣來的 就很開心的和我們合照~~後來去廁所又
11/02 21:12

11/02 21:13,
射出來了
11/02 21:13
-- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.120.241.127

08/14 00:51, , 1F
erase就降級為O(n)了 clear後需要再用到又要要一次空間
08/14 00:51, 1F

08/14 00:52, , 2F
要空間的成本頗高的
08/14 00:52, 2F

08/14 00:54, , 3F
erase好像本來就O(n)...XD 不過釋放空間這個動作會再需要額
08/14 00:54, 3F

08/14 00:55, , 4F
外成本,當元素多or複製元素成本高的時候就很可觀了
08/14 00:55, 4F

08/14 01:16, , 5F
你的疑點 是某些考量下的優點 不是不好用就是沒有用
08/14 01:16, 5F

08/14 07:05, , 6F
那...何時用clear?何時用swap呢?還是搞不太懂..OTL
08/14 07:05, 6F

08/14 13:12, , 7F
你不 clear 的話直接 swap 也沒用,沒有何時該用誰,只有
08/14 13:12, 7F

08/14 13:12, , 8F
clear 後該不該 swap 來釋放空間的問題。
08/14 13:12, 8F

08/14 13:12, , 9F
另一種是它自動長大預留了太多空間,你確定你不需要再增加
08/14 13:12, 9F

08/14 13:13, , 10F
東西時,可以用 swap 把多佔的空間釋放出來。
08/14 13:13, 10F

08/14 13:17, , 11F
其實各種程式實作的 stack 在 pop 時也只是 pointer 跳一
08/14 13:17, 11F

08/14 13:17, , 12F
下而已,沒有真的釋放空間,因為想說等下馬上也會蓋過去。
08/14 13:17, 12F
文章代碼(AID): #1AX39DHr (C_and_CPP)
文章代碼(AID): #1AX39DHr (C_and_CPP)