[C++] map

다곰·2022년 12월 12일
0

✅ 헤더파일: <map>
✅ 형식: map <key 자료형, value 자료형> 이름;

  • key 값을 기준으로 오름차순 자동 정렬
    내림차순 정렬: 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]++;

valueint 인 경우 한정이지만 냅다 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 값을 기준으로 오름차순 정렬됨

  1. key 값을 기준으로 내림차순 정렬
map<string,int,greater<string>> m;
  1. value 값을 기준으로 정렬
    ❗️vector pair 로 옮기는 작업 필요
map<string,int> m;
vector<pair<string,int>> v(m.begin(),m.end());

⭐️ vector로 옮긴 이후에는 vector 정렬방법으로 정렬

profile
다교미의 불꽃 에러 정복기

0개의 댓글