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

 更新时间:2019年12月19日 11:11:50   作者:flyfish1986  
今天小编就为大家分享一篇C++ map 根据value找key的实现,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

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的实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • C++浅析程序中内存的分布

    C++浅析程序中内存的分布

    这篇文章主要介绍了C++内存分布及用法,从内存的基础概念到内存分配进行了讲解,内存是我们开发中最重要的一部分,往往逻辑上的错误就会造成内存泄漏,导致程序无法运行,下面我们就来了解文章对该内容的详细介绍
    2022-08-08
  • C++详解如何实现动态数组

    C++详解如何实现动态数组

    这篇文章主要为大家详细介绍了C++实现动态数组的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-06-06
  • C++编程中队内联函数的理解和使用

    C++编程中队内联函数的理解和使用

    这篇文章主要介绍了C++编程中队内联函数的理解和使用,简单举例讲解了inline关键字引出的内联函数的相关知识,需要的朋友可以参考下
    2016-01-01
  • 深入jaxb xjc编码问题的详细介绍

    深入jaxb xjc编码问题的详细介绍

    本篇文章是对jaxb xjc编码的问题进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • 详解如何使用openssl创建自签名证书

    详解如何使用openssl创建自签名证书

    这篇文章主要为大家介绍了详解如何使用openssl创建自签名证书示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • C语言深入探究斐波那契数列

    C语言深入探究斐波那契数列

    斐波那契数一般指斐波那契数列。 斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入,故又称为兔子数列
    2022-05-05
  • C++中函数重载详解

    C++中函数重载详解

    大家好,本篇文章主要讲的是C++中函数重载详解,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-02-02
  • C语言 数据结构平衡二叉树实例详解

    C语言 数据结构平衡二叉树实例详解

    这篇文章主要介绍了C语言 数据结构平衡二叉树实例详解的相关资料,需要的朋友可以参考下
    2017-06-06
  • c语言算术运算符越界问题解决方案

    c语言算术运算符越界问题解决方案

    大量的安全漏洞是由于计算机算术运算的微妙细节引起的, 具体的C语言, 诸如符号数和无符号数之间转换, 算术运算的越界都会导致不可预知的错误和安全漏洞, 具体的案例数不胜数.
    2012-11-11
  • 随机加密程序的实现方法

    随机加密程序的实现方法

    下面实例是对随机加密程序的实现方法。需要的朋友参考下
    2013-05-05

最新评论