欢迎来到入门教程网!

C语言

当前位置:主页 > 软件编程 > C语言 >

C++ map 根据value找key的实现

来源:本站原创|时间:2020-01-10|栏目:C语言|点击:

flyfish

测试所需头文件

#include <algorithm>  
#include <vector>   
#include <map>
#include <string>

初始

std::map<int, std::string> t;
  t.insert(std::make_pair(1, "a"));
  t.insert(std::make_pair(2, "b"));
  t.insert(std::make_pair(3, "c"));
  t.insert(std::make_pair(4, "d"));

根据key 找 value

std::string s = "";
  auto it = t.find(2);
  if (it != t.end())
  {
    s = (*it).second;
  }

根据value 找key lambda方式

std::string s = "c";
  auto find_item = std::find_if(t.begin(), t.end(),
    [s](const std::map<int, std::string>::value_type item)
  {
    return item.second == s;
  });

  int n = 0;
  if (find_item!= t.end())
  {
    n = (*find_item).first;
  }

根据value 找key 函数对象方式

class finder
{
public:
  finder(const std::string &cmp_string) :s_(cmp_string){}
  bool operator ()(const std::map<int, std::string>::value_type &item)
  {
    return item.second == s_;
  }
private:
  const std::string &s_;
};


//调用
int n = 0;
auto it = std::find_if(t.begin(), t.end(), finder("d"));
  if (it != t.end())
  {
    n = (*it).first;
  }

以上这篇C++ map 根据value找key的实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

上一篇:Windows10配置VSCode C++环境(超详细,面向小白以及大

栏    目:C语言

下一篇:C++链表实现通讯录管理系统

本文标题:C++ map 根据value找key的实现

本文地址:https://www.xiuzhanwang.com/a1/Cyuyan/66.html

网页制作CMS教程网络编程软件编程脚本语言数据库服务器

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:835971066 | 邮箱:835971066#qq.com(#换成@)

Copyright © 2002-2020 脚本教程网 版权所有