作者ndc24075 (歡喜作,甘願受)
看板EE_DSnP
標題[問題] array的adtd -r亂數刪除有問題
時間Tue May 20 21:29:17 2008
有個很奇怪的地方想請問
當我打入
adta -r 20亂數增加
打入adtp得到
[ 0] = 16 [ 1] = 137 [ 2] = 165 [ 3] = 242 [ 4] = 283
[ 5] = 352 [ 6] = 354 [ 7] = 394 [ 8] = 400 [ 9] = 477
[ 10] = 526 [ 11] = 553 [ 12] = 606 [ 13] = 687 [ 14] = 769
[ 15] = 771 [ 16] = 807 [ 17] = 840 [ 18] = 891 [ 19] = 911
但當我打入adtd -r 10亂數刪除十個內容後
卻出現
[ 0] = 16 [ 1] = 553 [ 2] = 606 [ 3] = 687 [ 4] = 769
[ 5] = 771 [ 6] = 807 [ 7] = 840 [ 8] = 891 [ 9] = 911
我用cout查出每次erase(iterator pos)每次都是刪除_data[1]這一項資料
另外用cout顯示每次執行亂數刪除時,都一直沒有進去getPos這個函數
目前測試其他功能都正常,想請問這樣究竟會是什麼問題?
感謝>.<
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.4.234
1F:推 ric2k1:你的 size() 有問題吧? 05/20 21:52
2F:→ ndc24075:我用cout去查每次刪除的size變化,可是發現他們正常遞減 05/20 22:05
3F:推 ric2k1:那就是你 Array::iterator::operator + () 有問題? 05/20 22:10
4F:→ ndc24075:感謝老師...確實是這個地方弄錯了>.< 05/20 22:15