首页 > 其他 > 详细

使用find_if算法搜寻map的value

时间:2014-09-09 11:10:28      阅读:222      评论:0      收藏:0      [点我收藏+]
//
//  main.cpp
//  map_find
//
//  Created by PKU on 14-9-8.
//  Copyright (c) 2014年 PKU. All rights reserved.
//

#include <iostream>
#include <algorithm>
#include <map>

using namespace std;

template <class K, class V>
class value_equals{
private:
    V value;
public:
    value_equals(const V & vt):value(vt)
    {
        
    }
    bool operator()(pair<const K, V> & elem)
    {
        return elem.second==value;
    }
};

int main(int argc, const char * argv[])
{

    typedef map<float, float> FloatFloatMap;
    FloatFloatMap coll;
    FloatFloatMap::iterator pos;
    coll[1]=7;
    coll[2]=4;
    coll[3]=2;
    coll[4]=3;
    coll[5]=6;
    coll[6]=1;
    coll[7]=3;
    pos=coll.find(3);
    if (pos!=coll.end()) {
        cout << pos->first << ": " << pos->second << endl;
    }
    pos=find_if(coll.begin(), coll.end(), value_equals<float, float>(3.0));
    while (pos!=coll.end()) {
        cout << pos->first << ": " << pos->second << endl;
        pos=find_if(++pos, coll.end(), value_equals<float, float>(3.0));
    }
    return 0;
}

bubuko.com,布布扣

使用find_if算法搜寻map的value

原文:http://www.cnblogs.com/lakeone/p/3961531.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!