目前使用vector來當做資料儲存用的array(這邊的資料都是用copy的方式存入vector),剛好又需要在thread內要去更新vector內的資料。
所以是利用取址的方式來將資料寫回原本使用的vector內。
此時發生只要有新資料進來的時候,原本取到的位置的值會被變更。
這邊是懷疑因為vector自動重新分配大小時,會將原本的就資料搬到新的記憶體位置。
所以原本參照的位置就變成沒有使用或是被別的變數使用了,所以導致只要有新資料進來,值就錯誤的問題。
後來重新於一開始就設定vector的capacity,之後下去運作後,先前的問題就都不見了,所以有以上之推論。
不過在map上並沒有發生類似的狀況,所以這邊還需要在詳查一下吧
No comments:
Post a Comment