본문 바로가기
프로그래밍/STL

STL map / multimap

by neive 2011. 11. 3.
728x90

map 과 같은 키값에 다른 값들로 이루어진 multimap 에 대한 사용법 예제
map 안에 같은 키값으로 여러개 넣으면 insert 실패가 되어버리므로 그럴 때는 multimap 을 활용한다

소스 예제


void foo()
{
	// 맵
	std::map<INT, int> mapTemp;
	mapTemp.insert(std::map<INT, int>::value_type(2011, 11));

	// 반복자
	std::map<INT, int>::const_iterator it;
	for(it = mapTemp.begin(); it != mapTemp.end(); it++)
		if(it->first == 2011)
			int nVal = it->second;	// nVal == 11

	// 검색
	std::map<INT, int>::iterator it = mapTemp.find(2011);
	if(it != mapTemp.end())
		int nVal = (*it).second; // nVal == 11



	// 멀티 맵
	std::multimap<INT, int> mmapTemp;
	mmapTemp.insert(std::multimap<INT, int>::value_type(2011, 10));
	mmapTemp.insert(std::multimap<INT, int>::value_type(2011, 11));
	mmapTemp.insert(std::multimap<INT, int>::value_type(2011, 12));

	// 검색
	pair<MULTIMAP<INT, int>::iterator, multimap<INT, int>::iterator> it_pair;
	it_pair = mmapTemp.equal_range(2011);

	multimap<INT, int>::iterator itCur;
	for(itCur = it_pair.first; itCur != it_pair.second; itCur++)	// 10, 11, 12 가 들어있다
		if(itCur->second == 11)
			std::cout << "find it !" << std::endl;
}

728x90

댓글