유용한 정보
C++ map STL 사용법
cosmohoo
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;
}
반응형