반응형

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







 

 

반응형

문제 발생시 지나치지 마시고 댓글 남겨주시면 가능한 빨리 답장드립니다.

도움이 되셨다면 토스아이디로 후원해주세요.
https://toss.me/momo2024


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

+ Recent posts