看板 EE_DSnP 關於我們 聯絡資訊
手動測試發現在 adtp -r 會出現Bug 可是一直檢查不出哪個步驟出現問題 照順序Print都沒有問題 可以逆著順序Print都有問題 檢查過begin() . end()--的內容 都正確無誤 實在是不知道問題出在哪裡 附上測試結果: adtTest.array: adt> adta -r 5 adt> adtp === ADT (array) === [ 0] = 197 [ 1] = 477 [ 2] = 628 [ 3] = 783 [ 4] = 840 adt> adtp -r === ADT (array) === [ 4] = 783 [ 3] = 628 [ 2] = 477 [ 1] = 197 [ 0] = 41 adt> adta -r 5 adt> adtp === ADT (array) === [ 0] = 16 [ 1] = 137 [ 2] = 197 [ 3] = 242 [ 4] = 477 [ 5] = 526 [ 6] = 628 [ 7] = 783 [ 8] = 804 [ 9] = 840 adt> adtp -r === ADT (array) === [ 9] = 804 [ 8] = 783 [ 7] = 628 [ 6] = 526 [ 5] = 477 [ 4] = 242 [ 3] = 197 [ 2] = 137 [ 1] = 16 [ 0] = 73 adtTest.dlist: adt> adta -r 10 adt> adtp === ADT (dlist) === [ 0] = 197 [ 1] = 277 [ 2] = 335 [ 3] = 394 [ 4] = 477 [ 5] = 553 [ 6] = 768 [ 7] = 783 [ 8] = 798 [ 9] = 911 adt> adtp -r === ADT (dlist) === [ 9] = 911 [ 8] = 798 [ 7] = 783 [ 6] = 768 [ 5] = 553 [ 4] = 477 [ 3] = 394 [ 2] = 335 [ 1] = 277 adt> adta -r 10 adt> adtp -r === ADT (dlist) === [ 19] = 952 [ 18] = 916 [ 17] = 911 [ 16] = 798 [ 15] = 783 [ 14] = 768 [ 13] = 717 [ 12] = 635 [ 11] = 628 [ 10] = 606 [ 9] = 553 [ 8] = 513 [ 7] = 477 [ 6] = 394 [ 5] = 364 [ 4] = 335 [ 3] = 277 [ 2] = 197 [ 1] = 141 adt> adtp === ADT (dlist) === [ 0] = 16 [ 1] = 141 [ 2] = 197 [ 3] = 277 [ 4] = 335 [ 5] = 364 [ 6] = 394 [ 7] = 477 [ 8] = 513 [ 9] = 553 [ 10] = 606 [ 11] = 628 [ 12] = 635 [ 13] = 717 [ 14] = 768 [ 15] = 783 [ 16] = 798 [ 17] = 911 [ 18] = 916 [ 19] = 952 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.45.18.123
ric2k1:確定一下你的 end() 是 past the last 05/21 22:26
uxijgil:我用cerr的方式 讓iter = end() 05/21 22:40
uxijgil:然後讓iter--來確定 end()的前一個的確是最後一個有值元素 05/21 22:40
ric2k1:cout << *(li--) 嗎? 這樣是錯的哦! 05/21 22:54
firstquarter:跟我之前的bug一樣 我de出來是因為operator--寫錯 05/21 22:55
firstquarter:兩個-- return的東西是不一樣的 我把他弄一樣了XD 05/21 22:56
uxijgil:感謝 ! 問題正是因為 ++i 與 i++的不同所導致的 , 謝謝 05/22 00:57