Re: [問題] 請問STL的stack

看板C_and_CPP作者 (Khoguan Phuann)時間19年前 (2005/08/27 01:31), 編輯推噓2(202)
留言4則, 2人參與, 最新討論串1/2 (看更多)
※ 引述《kakashiliu (kakashi)》之銘言: : #include<stack> : stack<string>piles[52]; : 我使用STL裡面的stack : 但是使用完後想把裡面內容清除要怎麼做呢!? 有 52 個那麼多的堆疊呀(仿八卦新聞播報員的口氣 XD) 還是只是要一個堆疊,然後放 52 個 string 元素呢? #include <stack> #include <string> #include <algorithm> using std::stack; using std::string; using std::swap; stack<string> piles[52]; // 對這 52 個堆疊進行翻天覆地的操作 // 分別推進了許許多多數量不等的字串。 // 以下是泥牛入海法 for(int i=0; i<52; ++i) { stack<string> emp; swap(emp, piles[i]); } // 剩下 52 個空殼堆疊。 WAIT... 要這樣做,還不如在迴圈裡直接 piles[i] = stack<string>(); Mm... 要做一次清空 stack 的動作,還是直接利用 STL 的 deque 吧。 反正 stack 的 member function 是 deque 的子集,只是換了名稱 而已。deque 就有 clear() 可用了。一下子全部清空這種操作,本 來就不合 stack 的精神(或是比較保守的說,不合 STL 的 stack 的精神) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.130.208.168 ※ 編輯: khoguan 來自: 220.130.208.168 (08/27 02:33)

59.120.214.120 08/27, , 1F
不會,如果真要清空,swap 才是正解。這個「泥牛
59.120.214.120 08/27, 1F

59.120.214.120 08/27, , 2F
入海」法粉漂亮說…
59.120.214.120 08/27, 2F

61.58.184.76 08/27, , 3F
看我還是換deque來做比較好orz
61.58.184.76 08/27, 3F

61.58.184.76 08/27, , 4F
不管如何還是感謝各位大大^^
61.58.184.76 08/27, 4F
文章代碼(AID): #133r7sCj (C_and_CPP)
文章代碼(AID): #133r7sCj (C_and_CPP)