还在苦苦敲代码开发APP?你out啦! 试试积木搭建APP吧~

stl multimap用法

来源:     2016-12-06 08:25:15    人气:     我有话说( 0 人参与)

multimap的特点为key是可以重复的,而普通map中的key是不可以重复的。声明multimap<int, CString>mapTest;multimap<int, CString>::itera...

multimap的特点为key是可以重复的,而普通map中的key是不可以重复的。

声明

multimap<int, CString>mapTest;

multimap<int, CString>::iterator pIter;

typedef multimap<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++;       //这个要的
    }
}
这样就可以逐个遍历了。

stl multimap

本文源自互联网,采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可,
版权归原作者,如有问题请联系service@tsingfun.com (编辑:admin)
分享到: