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 |
댓글