**於
一、
#include #include#include
using
namespace
std ;
int main(void
) }
//正確的寫法
for (itor = m.begin(); itor !=m.end();)
else
}//另乙個正確的寫法,利用erase的返回值,注意,有些版本的stl-map沒有返回值,比如sgi版,但vc版的有
for (itor = m.begin(); itor !=m.end();)
else
}//print m
map::const_iterator citor ;
for (citor = m.begin(); citor != m.end(); ++citor)
getchar() ;
return0;
}
二、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)
int x;
}; int main()
remove演算法和erase成員函式
1.remove演算法和容器的erase成員函式 remove 操作移除 first,last 之中所有與 value 相等的元素。這一演算法並不真正從容器中刪除那些元素 換句話說容器的大小並沒有改變 而是將每乙個不與 value 相等的元素輪番賦值給 first 之後的空間。也就是說,所有和val...
map容器的erase用法
刪除指定map中指定key的元素 include include include include using namespace std int tmain int argc,tchar argv 執行結果為 ret 1 ret 0 分析 刪除map中指定key的元素會返回刪除元素的數量,如果key...
STL中map的成員函式insert的返回值
map在進行插入的時候是不允許有重複的鍵值的,如果新插入的鍵值與原有的鍵值重複則插入無效,可以通過insert的返回值來判斷是否成功插入。下面是insert的函式原型 pairbool insert const value type x 可以通過返回的pair中第二個bool型變數來判斷是否插入成功...