引用vector裡的元素被刪除後,引用會怎麼樣?

2022-07-22 03:27:12 字數 376 閱讀 4127

引用的定義不多說,直接看做變數的別名就可以了。有一天寫著寫著**,突然想到,如果對vector裡某個元素設定引用後,將這個元素從vector裡刪除會怎麼樣?我思考了下,認為那個元素會被刪除,但是引用還是會指向原來的記憶體,也就是說這裡可能會出現安全問題。光想是不行的,所以速度寫了個小測試:

#include#include

class

test

~test()

inta;

};int

main()

輸出如下:

1

5

是的,很明顯,引用指向的元素被析構了。以前我是從沒注意過這一塊的,嗯,又發現了乙個日常可能出錯的地方。

怎麼從vector裡刪除元素

現在用stl的人越來越多,stl確實是套很漂亮的演算法和資料結構庫.但是初用stl的人往往會遇上很多問題.從乙個容器中刪除元素,是很常用的操作,但是也是初學者常會犯錯誤的地方,刪除map和list中元素可能會犯迭代器失效的錯誤.vector是stl裡很常用的乙個容器,和map,list等容器相比,從...

怎麼從vector裡刪除元素

現在用stl的人越來越多,stl確實是套很漂亮的演算法和資料結構庫.但是初用stl的人往往會遇上很多問題.從乙個容器中刪除元素,是很常用的操作,但是也是初學者常會犯錯誤的地方,刪除map和list中元素可能會犯迭代器失效的錯誤.vector是stl裡很常用的乙個容器,和map,list等容器相比,從...

vector中的元素刪除

在vector中用迭代器刪除元素會用到erase 函式。這個函式返回的是刪除當前元素後下乙個元素的指標,也就是說在刪除元素後,指標指向刪除元素後面的那個,具體用法參考下面 vector iterator itin inliers.begin vector iterator itm matches.b...