반응형

C++ map에 대한 간단한 사용방법입니다.

2021. 12. 4 - 최초작성



map은 고유의 key 값을 사용하여 값을 저장하는 컨테이너로 키값에 따라 정렬이됩니다. 



다음처럼 키와 값의 타입을 지정하여 map을 선언합니다. 

첫번째가 키의 타입, 두번째가 값의 타입입니다.

 

std::map<int, int> map_a;



앞에서 지정한 타입에 맞추어 키와 값을 입력해야 합니다.

배열과 유사한 방식으로 사용됩니다. 키는 인덱스로 사용되며 값은 대입되는 값입니다.

 

    map_a[1] = 300;

    map_a[3] = 200;

    map_a[2] = 100;



다음처럼 for문을 사용하여  map 원소에  접근할 수 있습니다.

 

    std::map<int, int>::iterator it;

    for(it = map_a.begin(); it != map_a.end(); ++it)



원소의 first는 키를 가리키며 second는 값을 가리킵니다.

 

        std::cout << "first는 인덱스와 같다.  - it->fisrt = " << it->first << std::endl;

        std::cout << "second는 대입한 값과 같다. - it->second = " << it->second << std::endl;



다음처럼 map 원소 하나의 값을 출력할 수도 있습니다.

 

    std::cout << map_a[2] << std::endl;



#include <iostream>
#include <map>

int main()
{
    std::map<int, int> map_a;

    map_a[1] = 300;
    map_a[3] = 200;
    map_a[2] = 100;

    std::map<int, int>::iterator it;
    for(it = map_a.begin(); it != map_a.end(); ++it)
    {
            std::cout << "map_a[" << it->first << "] = " << map_a[it->first] << std::endl;

            std::cout << "first는 인덱스와 같다.  - it->fisrt = " << it->first << std::endl;
            std::cout << "second는 대입한 값과 같다. - it->second = " << it->second << std::endl;

            std::cout << std::endl;
    }

}



실행 결과입니다. 키값 순으로 map의 원소가 출력되는 것을 볼 수 있습니다.



map_a[1] = 300

first는 인덱스와 같다.  - it->fisrt = 1

second는 대입한 값과 같다. - it->second = 300

 

map_a[2] = 100

first는 인덱스와 같다.  - it->fisrt = 2

second는 대입한 값과 같다. - it->second = 100

 

map_a[3] = 200

first는 인덱스와 같다.  - it->fisrt = 3

second는 대입한 값과 같다. - it->second = 200







 

 

반응형

진행해본 결과물을 기록 및 공유하는 공간입니다.
잘못된 부분이나 개선점을 알려주시면 반영하겠습니다.


소스코드 복사시 하단에 있는 앵커 광고의 왼쪽 위를 클릭하여 닫은 후 해야 합니다.


문제가 생기면 포스트와 바뀐 환경이 있나 먼저 확인해보세요.
질문을 남겨주면 가능한 빨리 답변드립니다.


제가 쓴 책도 한번 검토해보세요 ^^

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기

댓글을 달아 주세요

TistoryWhaleSkin3.4">