✅ 헤더파일: <map>
✅ 형식: map <key 자료형, value 자료형> 이름;
map <key 자료형, value 자료형, greater<>> 이름;
key
값으로 데이터 탐색
if (m.find(key 값) != m.end()) {
cout << "find" << endl;
}
else {
cout << "not find" << endl;
}
데이터 삽입
1) insert
사용
mp.insert({key, value});
2) 냅다 선언?
mp[key]++;
value
가 int
인 경우 한정이지만 냅다 key
값을 value
갱신해버리면 map
에 없었던 key
는 추가되고 이미 존재하는 값이라면 value
가 갱신됨
반복문으로 데이터 접근
1) 인덱스 사용
for (auto it = mp.begin() ; it != mp.end(); it++)
cout << it->first << " " << it->second << endl;
2) 범위 기반
for (auto it : mp) cout << it.first << " " << it.second << endl;
데이터 삭제:
erase
함수,clear
함수
1) 특정 위치 요소 삭제
mp.erase(m.begin()+삭제할 인덱스);
2) key
값으로 삭제
mp.erase(key);
3) 전체 삭제
mp.erase(mp.begin(),mp.end());
mp.clear();
map 정렬하기
map 은 기본적으로 key 값을 기준으로 오름차순 정렬됨
key
값을 기준으로 내림차순 정렬map<string,int,greater<string>> m;
value
값을 기준으로 정렬map<string,int> m;
vector<pair<string,int>> v(m.begin(),m.end());
⭐️ vector로 옮긴 이후에는 vector 정렬방법으로 정렬