-
C++ map STL 사용법유용한 정보 2021. 12. 5. 01:37반응형
Map
- NODE로 이루어져 있으며 KEY와 VALUE로 이루어진 트리입니다.
-중복을 허용하지 않습니다.
-기본 형태 map <key, value> mapEx;
-map은 자료 삽입시 자동으로 내부에서 정렬 기능을 제공합니다. 이때, KEY값을 기준으로 오름차순으로 정렬하게 됩니다.
-내림차순으로 사용하고 싶은 경우 greater 인자를 추가하여 표현하면 됩니다.
MAP 객체 선언 및 삽입
#include <string> #include <vector> #include <map> using namespace std; int main() { map<string, int> mapEx; // string형도 KEY값이 가능 mapEx.insert(make_pair("HOO3", 4)); mapEx.insert(make_pair("HOO", 1)); mapEx.insert(make_pair("HOO1", 2)); mapEx.insert(make_pair("HOO2", 3)); mapEx["HOO4"]=4; // 해당 방법으로도 삽입가능. return 0; }
=> "HOO3"을 먼저 넣더라고 오름차순으로 "HOO" NODE가 가장 앞에 있는 것을 확인할 수 있습니다.
=> mapEx["HOO4"] = 4;
=> 위 방식과 같이 삽입할 수 있는 것을 염두에 둬야 합니다.
MAP 함수
- m.begin();
- m.end();
- m.rbegin();
- m.rend();
- m.clear();
- m.count(k);
- m.empty();
- m.insert(k);
- m.insert(iter, k);
- m.erase(start, end);
- m.find(k); => k가 있는 iterator를 반환합니다.
- m2.swap(m1);
- m.upper_bound(k);
- m.lower_bound(k);
- m.equal_range(k);
- m.value_comp();
- m.key_comp();
- m.size();
- m.max_size();
=> 굵은 색으로 표시한 함수들은 MAP 컨테이너를 사용할 때 사용빈도가 높은 함수들입니다.
MAP 순회방법
#include <string> #include <vector> #include <map> #include <iostream> using namespace std; int main() { map<string, int> mapEx; // string형도 KEY값이 가능 mapEx.insert(make_pair("HOO3", 4)); mapEx.insert(make_pair("HOO", 1)); mapEx.insert(make_pair("HOO1", 2)); mapEx.insert(make_pair("HOO2", 3)); mapEx["HOO4"]=4; for(auto iter = mapEx.begin(); iter != mapEx.end(); iter++) { cout <<"mapEx key : "<<iter->first<<" mapEx value : "<<iter->second<<'\n'; } return 0; }
반응형'유용한 정보' 카테고리의 다른 글
순열과 조합의 차이 (0) 2021.12.16 C++ stoi 함수 | C++ string to integer (0) 2021.12.07 string split 하는법 C++ | sstream 사용법 C++ | find함수 substr함수 (0) 2021.12.02 C++ sort함수 cmp 함수 (0) 2021.10.08 pair형 vector 정렬하기 / vector<pair< a, b>> sort /compare, greater, less (0) 2020.07.23