如何在map遍歷的時候刪除符合條件的選項

2021-06-23 05:05:36 字數 453 閱讀 5193

工作了,使用stl的次數變得很多,我是新手,雖然努力的看過stl的原始碼,但是很多的東西都沒有看懂,慢慢來吧。

昨天做專案的時候遇到了map遍歷的事情查了一下便了解的記錄下來。

這個刪除有兩種方法:

1,std::map::iterator iter;

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

else

}m_friendinfomap.erase(iter++);裡的i++操作主要做三件事情:

1、首先把i備份一下。

2、把i加上1。

3、返回第一步備份的i。

2, 在erase(iter)的時候iter會失效,所以不能再用其操作,不然會崩掉。

注意 for迴圈裡邊沒有了iter++,還有就是erase的返回值是指向刪除的下乙個元素的迭代器,

c 遍歷map的時候刪除元素

在c 程式設計的時候,我們有時會遇到,在遍歷map的時候,刪除符合某個條件的元素,如果我們不做任何處理,直接刪除map元素的話,程式會異常終端,提示 expression map set iterator not incrementable 所以如果想在遍歷map的時候刪除元素,必須做一些處理,下面...

如何在呼叫執行緒的時候傳遞引數

如何在呼叫執行緒的時候傳遞引數 我們在寫remoting程式或者其他的一些應用程式的時候難免要和執行緒打交道,net使我們很容易就可以建立乙個執行緒,但是它提供的建立執行緒和啟動執行緒的方法沒有明顯的提供引數,假如我們要用執行緒來啟動類裡面乙個帶引數的方法該怎麼辦?下面就簡單的介紹如何使用.net提...

如何在呼叫執行緒的時候傳遞引數

如何在呼叫執行緒的時候傳遞引數 我們在寫remoting程式或者其他的一些應用程式的時候難免要和執行緒打交道,net使我們很容易就可以建立乙個執行緒,但是它提供的建立執行緒和啟動執行緒的方法沒有明顯的提供引數,假如我們要用執行緒來啟動類裡面乙個帶引數的方法該怎麼辦?下面就簡單的介紹如何使用.net提...