map和multimap

咕嚕嚕冒泡發表於2023-05-08

map相對於set區別,map具有鍵值和實值,所有元素根據鍵值自動排序,pair的第一個值被稱為鍵值key,pair的第二個值被稱為實值value。map也是以紅黑樹為底層實現機制,根據key進行排序

建構函式

#include<map>
map<int,string> m;
multimap<T1,T2> mlmap;

插入

  • 方法一

    map的key重複將無法放入,multimap則可以

    m.insert({1,"汪汪汪"});
    
  • 方法二

    map的key重複則更新value
    注意!!multimap不能用這種方法,因為key不唯一
    []方法訪問map,如果key不存在將會自動建立

    m[2]="喵喵喵";  
    
  • 其他方法

    m.insert(pair<int,string>(3,"咩咩咩"));
    m.insert(make_pair(4,"咕咕咕"));
    

遍歷

for(auto it=m.begin();it!=m.end();it++)
{
	cout<<it->first<<" "<<(*it).second<<endl;
}
for(auto it:m)
{
	cout<<it.first<<" "<<it.second<<endl;
}

查詢

返回迭代器,找不到返回end迭代器

auto it=m.find(2);
cout<<it->second<<endl;

大小

int size();
bool empty();

相關文章