stl erase 的正確使用

2021-05-22 15:39:52 字數 686 閱讀 7623

stl: 【erase 正確使用】

stl之map erase方法的正確使用

stl的map表裡有乙個erase方法用來從乙個map中刪除掉指令的節點

eg:mapmaptest;

typedef map::iterator iter;

iter iter=maptest.find(key);

maptest.erase(iter);

像上面這樣只是刪除單個節點,map的形為不會出現任務問題,

但是當在乙個迴圈裡用的時候,往往會被誤用,那是因為使用者沒有正確理解iterator的概念.

像下面這樣的乙個例子就是錯誤的寫法,

eg.for(iter iter=maptest.begin();iter!=maptest.end();++iter)

{cout2. erase() 成員函式返回下乙個元素的迭代器

for(iter iter=maptest.begin();iter!=maptest.end();)

{cout//***********************************

/所有容器類別都提供一些成員函式,使得獲得迭代器並以之遍訪所有元素,這些函式如下:

//begin()返回乙個迭代器,指向容器起始點,也就是第一元素的位置

//end()返回乙個迭代器,指向容器結束點。結束點在最後乙個元素之後。

關於STL erase的iterator失效問題

iterator中文經常被譯為 泛型指標 在實際的使用中卻需要比指標更加小心翼翼。如果沒有注意到iterator失效,那麼產生的錯誤可能比普通指標更隱蔽,當然也可能會引起一般的程式異常。iterator失效主要有兩種情況 1 iterator變數已經變成了 野指標 對它進行 都會引起程式記憶體操作異...

的正確使用 眼霜正確的使用方法

眼睛周圍的肌膚是乙個人整張臉上最脆弱的部分,它嬌嫩柔弱,只要有稍稍的護理不慎,就會帶來不堪設想的後果,黑眼圈 眼袋之類的問題更是家常便飯了。我們可以使用日常眼霜保護眼周肌膚,緩解眼周肌膚的問題。然而,對於日常眼霜的使用,你知道多少,有一些你所不知道的錯誤用法,你是不是也中招了 日常眼霜的作用 日常眼...

typename的正確使用

typename 的正確使用 一 在宣告模板引數時,class 和typename 是可互換的。以下完全等價 templateclass widget templateclass widget 二 通常情況下,必須用 typename 去標識巢狀依賴型別名,但在基類列表中或在乙個 建構函式的成員初始...