본문 바로가기
VisualStudio.C++.C#/C . C++

C++. std::map . 키-값 컬렉션

by i.got.it 2020. 4. 1.

 

 

 

#include <map>

/// 선언
std::map<int, std::string> my_map_i_str; 

/// 요소추가 예. 키=3, 값 igotit 
my_map_i_str[3] = std::string("igotit");

/// 요소추가  
my_map_i_str.insert(std::pair<int, std::string>(3,std::string("igotit")));

/// 요소제거 
my_map_i_str.erase(3); 

// 요소 모두제거 
my_map_i_str.clear(); 

/// 요소받기 
std::string my_str = my_map_i_str[3];
std::string my_str = my_map_i_str.at(3);


/// 요소수량 받기. 
my_map_i_str.size(); 

/// 비어있나 점검. 
my_map_i_str.empty(); // 요소수량 0이면 1반환 1이상이면 0반환.

/// 특정 키 여부 확인. 
my_map_i_str.count(3); //키 3에 해당하는 요소수량. 맵의 키는 유니크하므로 있는 경우 1이 반환됨.

/// 반복하기 
for(std::map<int, std::string>::value_type& iter : my_map_i_str)
{
    iter.first ;// 키 
    iter.second ;// 값 
}
/// 위와 동일
for(auto& iter : my_map_i_str)
{
    iter.first ;// 키 
    iter.second ;// 값 
}

//////// 반복 예. 
    map<char, int> mymap;
    mymap['a'] = 1;
    mymap['b'] = 2;
    mymap['c'] = 3;
  
    // using begin() to print map
    for (auto it = mymap.begin();
         it != mymap.end(); ++it)
        cout << it->first << " = "
             << it->second << '\n';
 출력.
a = 1
b = 2
c = 3

 

map 의 크기 정렬   

- 키 값의 큰값이 map 의 앞에 , 혹은 작은 값이 앞에 오게 할 수 있다. 

 

map 선언시 std::map<int, CString>처럼 특별히 지정하지 않은 경우 키의 값이 작은 값이 앞에 배치된다.

명시적으로 이를 선언시 표현하려면 std::map<int, CString, std::less<int>>

map 선언시 std::map<int, CString, std::greater<int>> 처럼 선언하면 키의 큰 값이 map 의 앞에 배치된다. 

 

필요 헤더 : <functional>

 

 

 

map 에서 2개의 키

std::map<std::pair<string, string>, int> map_2key; // 2개의 키를 갖도록 pair 로 선언. 

map_2key[std::make_pair("str1","str2")]; 

.. 


 

 

 

기타 상세정보 

 

map - C++ Reference

difference_typea signed integral type, identical to: iterator_traits ::difference_type usually the same as ptrdiff_t

www.cplusplus.com

 

연관 

 

 

 

std::vector. STL vector class. 사용법.

개요. - std::vector - 동적 배열이면서 배열의 마지막 지점에 엘리먼트 삽입 , 제거 에 최적화 되어있음. - push_back() 마지막에 엘리먼트 삽입. - pop_back() 마지막 엘리먼트 삭제. - 마지막 아닌곳도 엘

igotit.tistory.com

 

 

MFC CMap Class. 등 자료형 자유로운 딕셔너리(사전) 컬렉션.

CMap CMap은 자료형이 자유로운 딕셔너리 컬렉션 클래스. CMap Class A dictionary collection class that maps unique keys to values. 복사 template< class KEY, class ARG_KEY, class VALUE, class ARG_VALUE..

igotit.tistory.com

 

 

Python. 딕셔너리.

get() . 키에 해당하는 값 받기. my_dict = {'a': 1, 'b': 2, 'c': 3}; my_dict.get('a'); # 키 a 의 값 1 반환됨. my_dict.get('a',0); # 2번째 인자에 0을 기록하면 키없다면 0 반환됨. my_dict.get('d',0); #..

igotit.tistory.com

 

 


첫 등록 : 2020.04.01

최종 수정 : 

단축 주소 : https://igotit.tistory.com/2523

 


 

댓글



 

비트코인




암호화폐       외환/나스닥/골드       암호화폐/외환/나스닥/골드 암호화폐/외환/나스닥/골드   암호화폐/외환/나스닥/골드
     
현물 |선물 인버스 |선물 USDT       전략매니저(카피트레이딩)     롤오버 이자 없는 스왑프리계좌
( 스왑프리 암호화폐도 거래 가능 )    
MT4, MT5 , cTrader 모두 지원     FTMO 계좌 매매운용. MT4,MT5