unordered_multimap使用

方式一:
    typedefstd::multimap<int,int> Pairs;
    multimap<int,int>::iterator iter;
    Pairs pairs;
    pairs.insert(make_pair(1, 1));
    pairs.insert(make_pair(1,2));
    pairs.insert(make_pair(1,3));
    pairs.insert(make_pair(2, 4));
    pairs.insert(make_pair(2,5));
    pairs.insert(make_pair(3,2));
    intkey = 1;
    Pairs::iterator position = pairs.lower_bound(key);
    while(position != pairs.upper_bound(key))
    {
        cout << position->first << "\t"<< position->second;
        ++position;
    }
方式二:
    typedefstd::multimap<int,int> Pairs;
    multimap<int,int>::iterator iter;
    Pairs pairs;
    pairs.insert(make_pair(1, 1));
    pairs.insert(make_pair(1,2));
    pairs.insert(make_pair(1,3));
    pairs.insert(make_pair(2, 4));
    pairs.insert(make_pair(2,5));
    pairs.insert(make_pair(3,2));
 
    iter = pairs.find(1);    //find返回的是第一个找到的元素的位置
    if(iter == pairs.end()) cout << "can not find 2\n";  //注意判断没有找到的办法
    elsecout << iter->second << endl;
 
    pair<Pairs::iterator, Pairs::iterator> range; //前面说了find只能返回第一个位置
    range = pairs.equal_range(1);             //要是想得到全部,只能这样啦
    for(iter = range.first; iter != range.second; iter++)
            cout << iter->first << " " << iter->second << endl;

你可能感兴趣的:(order)