ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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;
    }

     

    실행화면

    반응형

    댓글

Designed by Who.