Programming/STL
Map
눈떠보니내무실
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은 = 이 되지 않는다. 키값이 중복 가능하다.