[問題] iterator的移動有點問題

看板C_and_CPP作者 (紅髮Aska)時間12年前 (2012/06/13 16:58), 編輯推噓0(0016)
留言16則, 2人參與, 最新討論串1/1
http://pastie.org/4078675 code在網頁中 簡單來說我想要在我一個裝了很多map的list中尋找map的元素所以這樣寫 在第一行的的count那裏計算裡面有沒有東西 我測資下給了會成功的側資 所以理論上得到的a數字應該是1 我中斷點已經設定在之後來測試 但是結果很奇怪的是 他第一次跑的時候是0 等又跑了一次迴圈才顯示找到 a才等於1 想請問一下這樣的問題該怎麼解決? 我有嘗試把 L++ 改成 ++L 但是得到的結果還是依樣 會先跑一次迴圈 然後才得到正確的答案 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.112.167

06/13 17:28, , 1F
你的意思是你把該找到的map放在list的第一個位置,但卻
06/13 17:28, 1F

06/13 17:29, , 2F
沒有在第一個迴圈找到?
06/13 17:29, 2F

06/13 17:30, , 3F
http://ideone.com/ITWJo 沒什麼問題 :~
06/13 17:30, 3F

06/13 18:54, , 4F
對阿 沒錯 很奇怪
06/13 18:54, 4F
大大請看 這是中斷點顯示的結果 http://i.imgur.com/JJsGJ.png
http://i.imgur.com/NrKT3.png
http://i.imgur.com/WvrBU.png
我發現問題在於為什麼一開始 *L裡面竟然是空空如也 而跑過一次迴圈之後就有了新的東西 但是這樣對我的程式架構有影響 想請問一下這是什麼樣的問題 該怎麼解決呢? ※ 編輯: askaleroux 來自: 140.116.112.167 (06/13 19:02)

06/13 18:58, , 5F
存進去的時候確定沒錯? 可以把TempList.begin()抓出來
06/13 18:58, 5F

06/13 18:59, , 6F
展開看看
06/13 18:59, 6F

06/13 18:59, , 7F
畢竟你沒貼存入部分的code,也無從debug :~
06/13 18:59, 7F

06/13 19:04, , 8F
呃,看了你的修文之後我覺得你好像沒有搞懂iterator的
06/13 19:04, 8F

06/13 19:05, , 9F
原理 :~ 你讓iterator L去從容器的begin遍巡到end 那
06/13 19:05, 9F

06/13 19:05, , 10F
當然會在跑到不同位置的時候有不同結果呀
06/13 19:05, 10F

06/13 19:05, , 11F
?????? 我以為這樣子iterator開始
06/13 19:05, 11F

06/13 19:06, , 12F
對阿對阿 但是也會從一開始的地方begin開始吧? ?
06/13 19:06, 12F

06/13 19:07, , 13F
而我丟進去的測資也是在第一個就可以找到的項目耶??
06/13 19:07, 13F

06/13 19:07, , 14F
所以你的測資應該沒有存到begin的位置
06/13 19:07, 14F

06/13 19:08, , 15F
你沒貼存入部分的code,我無法抓藥 :~
06/13 19:08, 15F

06/13 19:08, , 16F
沒關係 大大 我看一下有沒有結構錯誤 謝謝大大
06/13 19:08, 16F
文章代碼(AID): #1Fs5O_50 (C_and_CPP)