반응형

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







 

 

반응형

해보고 확인한 것을 문서화하여 기록합니다.
최소 일주일에 한번 이상 포스트를 하려고 노력중입니다.

부족함이 있지만 도움이 되었으면 합니다.
잘못된 부분이나 개선점을 알려주시면 감사하겠습니다.



포스트 작성시에는 문제 없었지만 이후 문제가 생길 수 있습니다.
문제가 생기면 포스트와 바뀐 상황이 있나 확인해보세요.
시간날때 마다 이전 포스트가 문제 있는지 확인을 해보려고 노력하고 있습니다.
생각보다 시간이 많이 걸리네요 : )
질문을 남겨주면 가능한 빨리 답변드립니다.


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

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

댓글을 달아 주세요

">