日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

浅析迭代器失效

發布時間:2023/12/20 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 浅析迭代器失效 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

什么是迭代器失效呢,首先迭代器的失效是指在容器內進行插入元素或者刪除元素之后,迭代器不能正常的訪問或遍歷數據,使其失去了本來的功能。我們常見的迭代器失效,比如在vector 的插入數據和刪除數據,會導致迭代失效,,在鏈表里刪除數據時,也會導致迭代器失效,,今天我們重點看在vector和list里的迭代器失效。

一,vector中刪除一個元素,會導致迭代器失效,,具體看圖
那么我們該如何解決呢,具體看圖

有兩個解決辦法。。根據情況自己選擇

二,vector插入一個元素,由于可能存在空間不夠的原因,需要擴容,就重新開辟一塊空間,,并將原來的值考下來,但是迭代器仍指向舊的空間,拿它訪問的時候就會出現非法訪問的問題,,導致程序崩潰,我們的解決的辦法是 重置it, 在新空間上找到和舊空間相同的地址(it指向),然后進行訪問,具體看圖

三,鏈表的刪除會導致迭代器失效,原因基本和vector刪除導致迭代器失效一樣,它把一個節點刪了,空間已被釋放,但是迭代器依舊指向這個地方,進行訪問會出現非法訪問,程序會崩掉。我們的解決方法和vector 刪除是一樣的,。。這里就不贅述了,大家只看代碼就能理解。
當然還有其他容器的迭代器失效,,等在遇到的時候,在更新~~~

總結

以上是生活随笔為你收集整理的浅析迭代器失效的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。