stl multimap用法
				multimap的特点为key是可以重复的,而普通map中的key是不可以重复的。
	
	
	
	
		
        
	
	
	
	
	
		
		
	
	
	
	
	
		  		
	    声明
| multimap<int, CString>::iterator pIter;typedefmultimap<int, CString>::iterator it; | 
插入:跟普通map相似
| mapTest.insert(PairTest(1, _T("a")));mapTest.insert(PairTest(1, _T("b")));mapTest.insert(PairTest(1, _T("c")));mapTest.insert(PairTest(2, _T("a"))); | 
遍历:主要思路为根据key,multimap的特点为key是可以重复,即一个key对应多个value。将所有key取出来,然后每个key逐个遍历。
1、取出所有的key,可以用set
| for(pIter = mapTest.begin(); pIter != mapTest.end(); pIter++){    setKey.insert(pIter->first);} | 
2、逐个key遍历
pair<it, it> PairIter;
for (pIterKeySet = setKey.begin(); pIterKeySet != setKey.end(); pIterKeySet++)
{
    int iCurrentKey = *pIterKeySet;
    PairIter = mapTest.equal_range(iCurrentKey);
    while (PairIter.first != PairIter.second)
    {
        CString csTempKey = PairIter.first->second;
        cout<<csTempKey<<endl;
        PairIter.first++;       //这个要的
    }
}
这样就可以逐个遍历了。     
		 评论加载中,请稍后...
    评论加载中,请稍后...