看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《EdisonX (閉上眼的魚)》之銘言: : 開發平台(Platform): (Ex: VC++, GCC, Linux, ...) : vs 2008 : 問題(Question): : primer ch9 剛念完,裡面提到 find , : 於是實做了類似下面的東西 : beg = ivec.begin(), end=ivec.end(); : do{ : beg = find(beg, end, 2); : vit.push_back(beg++); : }while(beg!=end); : 完整程式碼及錯誤視窗於下連結, : 於執行期會失敗, 不知是不是我哪裡觀念有問題 : 錯誤結果(Wrong Output): : http://ppt.cc/9pfV : 程式碼(Code):(請善用置底文網頁, 記得排版) : http://nopaste.csie.org/8b2fc : 補充說明(Supplement): : Primer 第二篇是不是要懂資料結構、演算法才念得下去? : (資料結構我只知道 link list,演算法完全沒學過,只知道幾個簡單的排序) : 我覺得現在念得好痛苦,是不是要有其它的輔助書籍? : 謝謝各位。 如果可以, STL algorithms 搭 lambda function 會比較好讀, 我比較笨, 原 PO 這樣寫法, 要多看幾個循環才比較清楚流程. 個人偏好把要完成的任務分成好幾個小步驟來做, 像此例可以把 : 「尋找值為 VALUE 的所有元素位址」 拆解成: (1)「取得所有元素的位址」 (2)「保留(1)中取值後為 VALUE 的位址」 各步驟很容易分離成獨立的函式, 而且跟你這次要完成的工作較 沒直接關聯性, 未來要重複使用的機會也高. 此例我是用 vector<int>::pointer, 不一定要用 algorithms, 但是打多點單字在程式碼裡比打註解好多了, 也可以減少自己步 進時犯的錯. 程式碼: http://codepad.org/UgLFzP31 知道在 STL容器上有哪些操作, 以及做了有什麼效果、你需要保 證的前置條件, 就足以去使用它們了..用一個類還要懂它的演算 法原理, 那自己寫就好啦. -- ◢████ ◢█ ◢██◣ ◢█ ◢███ ◢█ T-ara版怎麼去 ████◢█████s ~> T-ara ███ █ ◢██ 歡迎您的光臨 ███████████恩靜智妍孝敏 ███ ██ 素妍居麗寶藍 ████◥██◤ █████花英 ψmakigoto123 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.121.197.115 ※ 編輯: loveme00835 來自: 140.121.197.115 (01/15 02:30)
EdisonX:謝謝指教,可能我太嫩,目前還看不大懂 XD 01/15 12:48
tomap41017:lambda function真是好物><問題是要4.5才支援QQ 01/15 12:51