[問題] adtd -r 1000

看板EE_DSnP作者 (...)時間14年前 (2011/11/29 20:50), 編輯推噓0(008)
留言8則, 2人參與, 最新討論串1/1
用tests裡的do2測bst時, 有一個是adtd -r 1000, 跑到這會記憶體區段錯誤, 用gdb看了一下, 原因好像是erase(getPos(pos))中的裡的 T& x 沒有東西, 所以沒辦法比較,無法刪除, 但random產生出的東西應該裡面的data不會沒有東西吧 ??? 還是我哪裡寫錯了呢 QQ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.252.211

11/29 20:52, , 1F
iterator沒寫好?
11/29 20:52, 1F

11/29 20:53, , 2F
如果pos>node數 getPos會return end()
11/29 20:53, 2F

11/29 20:55, , 3F
可以在刪東西的時候判斷是不是end(),是就直接跳出
11/29 20:55, 3F

11/29 20:55, , 4F
我iterator只有超出範圍時才回會傳0
11/29 20:55, 4F
※ 編輯: Komemushisp 來自: 140.112.252.211 (11/29 21:00)

11/29 21:05, , 5F
好像沒跑到RANDOM_ACCESS裡面... 該如何改呢?
11/29 21:05, 5F

11/29 21:10, , 6F
random access是給array用的吧?
11/29 21:10, 6F

11/29 21:11, , 7F
就算不跑random access pos超過node數之後
11/29 21:11, 7F

11/29 21:11, , 8F
iterator還是會被加到end()才對
11/29 21:11, 8F
文章代碼(AID): #1ErDKC5- (EE_DSnP)