kyuseo의 게임 프로그래밍

STL map 사용시 할당 안된 값의 초기값은 무엇인가? 본문

C++ 개발

STL map 사용시 할당 안된 값의 초기값은 무엇인가?

kyuseo 2009. 9. 3. 16:37

개요..

 

STL map 사용시 할당 안된(초기화 되지 않은) 값의 초기값은 무엇인지 알아봅니다.

 

 

코드 출처 : CK IPod, IPhone Game Engine

 

 

Case 1 포인터 맵의 경우

 

아래와 같이 포인터로 구성된 map 의 경우에는 할당 안된 값은 NULL로 초기화되어 있습니다.

 

 

    int n1 = 1;

    int n2 = 2;

    map< int, int* > _map;

    

    _map[1] = &n1;

    _map[2] = &n2;

 

    int* p1 = _map[1];    // *p1 = 1

    int* p2 = _map[2];    // *p2 = 2

    int* p3 = _map[3];    // *p3 = NULL

 

 

 

Case 2 일반 변수의 경우

 

아래와 같이 일반 변수로 구성된 map 의 경우에는 할당 안된 값은 0으로 초기화되어 있습니다.

 

 

    int n1 = 1;

    int n2 = 2;

    map< int, int > _map;

    

    _map[1] = n1;

    _map[2] = n2;

 

    int p1 = _map[1];    // p1 = 1

    int p2 = _map[2];    // p2 = 2

    int p3 = _map[3];    // p3 = 0