각 노드가 (key, value) 쌍으로 이루어진 트리
#include <map>
using namespace std;
//key 기준으로 오름차순 정렬(디폴트)
map<string, int> mp;
map<char, int> mp;
map<int, int> mp;
//key 기준으로 내림차순 정렬
map<string, int, greater> mp;
map<key의 자료형, value의 자료형> mymap;
: 디폴트map<key의 자료형, value의 자료형, greater> mymap;
: key 기준으로 내림차순 정렬𝑂(𝑙𝑜𝑔𝑁)
mp.insert({key값, value값});
ex. mp.insert({"Joe", 3});
mp[key값] = value값;
mp.find(key값)
: iterator 반환
mp.find(key값) -> second
: key값에 해당하는 value값 반환
반복문에서 데이터 접근
for(auto i=mp.begin(); i!=m.end(); i++) {
cout << i->first << " " << i->second << endl;
//iterator i는 map의 각 데이터(key,value)를 가리킴
}
for(auto i : mp) {
cout << i.first << " " << i.second << endl;
}
데이터를 찾지 못하면, iterator는 map.end()
를 반환
if (mp.find("Alice") != mp.end()) {
cout << "find" << endl;
}
else {
cout << "not find" << endl;
}
mp.erase(key값);
: key값을 기준으로 삭제
ex. mp.erase("Joe");
mp.erase(mp.begin()+2);
: 특정 위치의 요소 삭제
mp.clear();
: 모든 요소 삭제