[問題] 類似photo shop 上一步、下一步做法

看板C_and_CPP (C/C++)作者 (iMetal)時間11年前 (2014/07/19 13:05), 11年前編輯推噓4(405)
留言9則, 7人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) C++ 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) Qt 問題(Question): 想做出跟photoshop 一樣對影像做完處理後, 可以回到上一步以及下一步的功能 但是卻不知道要用什麼資料結構比較適合 而可回復的步數是固定的,好比說限制最多五步 有想過是不是可以用兩個stack : S,T 每做一次影像處理後的結果就push 到 S, 而顯示在畫面上的永遠是S頂端的資料 當作上一步的時候,將S pop,且把pop出來的Data push 到 T 若是做下一步就將T pop,並依序push到 S中 若是T非空而作了新的影像處理,則將T flush掉 ------------------------------------------ 目前想到是這樣,然後這個做法我有想到有個問題是 如果S滿了就會很麻煩 必須一直想辦法清掉底部的資料(可能要全部pop出來再把上面n-1個push回去) 這邊就會變得相當沒有效率 想請問板上有沒有大大知道做類似這種程式時, 會使用怎麼樣的資料結構來解決問題 餵入的資料(Input): Image Data 預期的正確結果(Expected Output): 實踐上一步下一步的資料結構 錯誤結果(Wrong Output): 程式碼(Code):(請善用置底文網頁, 記得排版) 補充說明(Supplement): 第一次在這個板發文,第一次在這個板上發問,若有違版規還請多指教 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.12.4.192 ※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1405746357.A.68A.html

07/19 13:07, , 1F
deque
07/19 13:07, 1F
※ 編輯: milk78522 (101.12.4.192), 07/19/2014 13:10:00 ※ 編輯: milk78522 (101.12.4.192), 07/19/2014 13:20:57

07/19 13:27, , 2F
應該不是紀錄整張圖,而是記錄作了什麼,undo就反操
07/19 13:27, 2F

07/19 13:27, , 3F
作吧,我猜
07/19 13:27, 3F

07/19 14:48, , 4F
Command pattern 選我正解
07/19 14:48, 4F

07/19 15:19, , 5F
any persistent data structures!
07/19 15:19, 5F

07/19 15:52, , 6F
acureblaze 跟 damody 講的對,用 deque 放 Command
07/19 15:52, 6F

07/19 16:42, , 7F
design pattern 裡面的memento 參考看看
07/19 16:42, 7F

07/21 23:47, , 8F
你的問題好像不是怎麼undo,而是怎麼做有限空間的stack
07/21 23:47, 8F

07/21 23:50, , 9F
用linked list或circular buffer都很簡單啊...
07/21 23:50, 9F
文章代碼(AID): #1JoVorQA (C_and_CPP)
文章代碼(AID): #1JoVorQA (C_and_CPP)