유용한 정보

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;
}

 

실행화면

반응형