作者ilovebbs (幸福!)
看板C_and_CPP
標題Re: [問題] 清除vector所占空間的疑問
時間Thu Aug 13 23:33:21 2009
※ 引述《QQ29 (我愛阿蓉)》之銘言:
: 以下是我測試小程式
: 參考某網頁說 vector 不管是clear erase或怎樣的 都不會回收空間於是乎用以下測試
我有個問題,既然clear和erase不會回收空間,那這兩個的意義到底是
什麼呢?囧?
反正只要是想回收空間就是用swap嘛?
--
1F:→ bluewinds:我在香港迪士尼有遇到邱淑貞 和她坐同艘船~搞到最後 我 11/02 21:11
2F:推 FackPtt: 就射出來了 11/02 21:12
3F:→ bluewinds:們都在看她 沒有人聽解說人員講話~~她本人人超好~~一聽 11/02 21:12
4F:推 ZBeta: 就射出來了 11/02 21:13
5F:→ bluewinds:到我們是台灣來的 就很開心的和我們合照~~後來去廁所又 11/02 21:12
6F:→ sephen: 射出來了 11/02 21:13
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.120.241.127
7F:→ akasan:erase就降級為O(n)了 clear後需要再用到又要要一次空間 08/14 00:51
8F:→ akasan:要空間的成本頗高的 08/14 00:52
9F:→ akasan:erase好像本來就O(n)...XD 不過釋放空間這個動作會再需要額 08/14 00:54
10F:→ akasan:外成本,當元素多or複製元素成本高的時候就很可觀了 08/14 00:55
11F:→ softwind:你的疑點 是某些考量下的優點 不是不好用就是沒有用 08/14 01:16
12F:→ ilovebbs:那...何時用clear?何時用swap呢?還是搞不太懂..OTL 08/14 07:05
13F:→ tinlans:你不 clear 的話直接 swap 也沒用,沒有何時該用誰,只有 08/14 13:12
14F:→ tinlans:clear 後該不該 swap 來釋放空間的問題。 08/14 13:12
15F:→ tinlans:另一種是它自動長大預留了太多空間,你確定你不需要再增加 08/14 13:12
16F:→ tinlans:東西時,可以用 swap 把多佔的空間釋放出來。 08/14 13:13
17F:→ tinlans:其實各種程式實作的 stack 在 pop 時也只是 pointer 跳一 08/14 13:17
18F:→ tinlans:下而已,沒有真的釋放空間,因為想說等下馬上也會蓋過去。 08/14 13:17