作者Komemushisp (...)
看板EE_DSnP
標題[問題] adtd -r 1000
時間Tue Nov 29 20:50:17 2011
用tests裡的do2測bst時,
有一個是adtd -r 1000,
跑到這會記憶體區段錯誤,
用gdb看了一下,
原因好像是erase(getPos(pos))中的裡的 T& x 沒有東西,
所以沒辦法比較,無法刪除,
但random產生出的東西應該裡面的data不會沒有東西吧 ???
還是我哪裡寫錯了呢 QQ
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.252.211
1F:→ e124553423:iterator沒寫好? 11/29 20:52
2F:→ e124553423:如果pos>node數 getPos會return end() 11/29 20:53
3F:→ e124553423:可以在刪東西的時候判斷是不是end(),是就直接跳出 11/29 20:55
4F:→ Komemushisp:我iterator只有超出範圍時才回會傳0 11/29 20:55
※ 編輯: Komemushisp 來自: 140.112.252.211 (11/29 21:00)
5F:→ Komemushisp:好像沒跑到RANDOM_ACCESS裡面... 該如何改呢? 11/29 21:05
6F:→ e124553423:random access是給array用的吧? 11/29 21:10
7F:→ e124553423:就算不跑random access pos超過node數之後 11/29 21:11
8F:→ e124553423:iterator還是會被加到end()才對 11/29 21:11