1. 程式人生 > >C++ map操作下標問題

C++ map操作下標問題

map集合的插入資料中,操作下標插入最直觀,企業中經常使用,但是又兩個問題要注意

1)插入資料為重複key的話,會把原來值覆蓋,

map<int,string> map1;

map1.insert(make_pair(2,"s"));

map1[2] = "22";

map<int, string>::iterator it = map1.begin() ;

for(;it!= map1.end();it++)
{
cout<< it->first <<"+++++++" <<it->second<<endl;
}


2)插入資料為不重複key,就是之前map集合沒有這個key的話,插入分兩步。第一步,把key對應的value置為預設值。第二步把預設值賦值為實際value

map<int, string> map2;

map2[2] = "22";//這句第一步map2[2] = ""; 第二步再賦值過去 <2,"22">.

所以不要用下標方式來查詢資料,如果map中沒有這個key,會賦值一個預設值做value。