zoukankan      html  css  js  c++  java
  • map按value值查找——find_if的使用(转载)

    转载:http://www.cnblogs.com/xufeiyang/archive/2012/05/09/2491871.html

    CValueFind

     1 #ifndef _CVALUEFIND_H_
     2 #define _CVALUEFIND_H_
     3 #include <string>
     4 #include <algorithm>
     5 #include <map>
     6 
     7 
     8 class map_value_finder
     9 {
    10 public:
    11     map_value_finder(const std::string &cmp_string):m_s_cmp_string(cmp_string){}
    12     bool operator ()(const std::map<int, std::string>::value_type &pair)
    13     {
    14         return pair.second == m_s_cmp_string;
    15     }
    16 private:
    17     const std::string &m_s_cmp_string;                    
    18 };
    19 #endif

    main

    #include <iostream>
    #include <windows.h>
    #include <vector>
    #include "CValueFind.h"
    using namespace std;
    //map按value值查找——find_if的使用
    
    int main()
    {
        std::map<int, std::string> my_map;
        my_map.insert(std::make_pair(10, "china"));
        my_map.insert(std::make_pair(20, "usa"));
        my_map.insert(std::make_pair(30, "english"));
        my_map.insert(std::make_pair(31, "english"));
        my_map.insert(std::make_pair(32, "english"));
        my_map.insert(std::make_pair(33, "english"));
        my_map.insert(std::make_pair(34, "english"));
        my_map.insert(std::make_pair(35, "english"));
        my_map.insert(std::make_pair(36, "english"));
        my_map.insert(std::make_pair(37, "english"));
        my_map.insert(std::make_pair(38, "english"));
        my_map.insert(std::make_pair(39, "english"));
        my_map.insert(std::make_pair(40, "hongkong")); 
    
        std::map<int, std::string>::iterator it = my_map.end();
        it = std::find_if(my_map.begin(), my_map.end(), map_value_finder("english"));
        if (it == my_map.end())
            printf("not found
    ");       
        else
        {
            printf("found key:%d value:%s
    ", it->first, it->second.c_str());
        }
        getchar();
    
        return 0;
    }
  • 相关阅读:
    bug记录_signalr执行$.connnection.testhub结果为空
    mysql存储过程
    docker安装svn
    Redis在windows下安装过程
    JAVA日期查询:季度、月份、星期等时间信息
    VueX(Vue状态管理模式)
    Lambda常用写法
    Docker部署SpringBoot项目
    vue+nginx+docker 的前端项目部署方案
    docker常用操作
  • 原文地址:https://www.cnblogs.com/chechen/p/4111192.html
Copyright © 2011-2022 走看看