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
'프로그래밍 > STL' 카테고리의 다른 글
STL vector, list, map 반복자 도중 삭제 (0) | 2011.11.02 |
---|---|
BYTE (unsigned char) Stream / asio send buffer (0) | 2011.11.01 |
댓글