눈떠보니내무실 2014. 6. 2. 10:35

map

map은 노드기반 컨테이너다. 양방향 반복자를 사용하며 []가 연산자 오버로딩 되어있다. 삽입이 느리고 검색과 정렬이 빠르다.(타일과 지형은 벡터로, 이미지는 map으로)

 

한번에 2개의 값을 집어넣는다( key, value)

key : 분류 기준, 정렬의 기준이 된다.

value : 직접적인 데이터이다.

 

map<키, 벨류> m_map;

m_map.insert(pair<키, 벨류>(키값, 벨류값)); //pair는 반드시 생성해줘야 하는 임시객체

 

iter->first : 키값    iter->second : 벨류값

 

키값이 동일하다면?

map : 중복키값 비허용

multimap : 중복키값 허용

 

사용 예

m_map.insert(pair<int,string>(5,"ABC"));

m_map.insert(make_pair(5, "ABC")); //make_pair는 직접 만든것

insert 사용시 키값이 중복된다면 처음것이 남아있다.

대입 사용시 키값이 동일하다면 나중것이 남아있다.

 

iter = m_map.find(n)  //특정값을 찾을 때 사용한다.

 

map의 3번째 인자(정렬)    기본 less(오름차순) , 내림차순은 greater

 

multimap은 = 이 되지 않는다. 키값이 중복 가능하다.