使用map的find头文件_C++ map 根据value找key的实现

flyfish

测试所需头文件

#include

#include

#include

#include

初始

std::map 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::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::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++ map 根据value找key的实现

本文地址: http://www.cppcns.com/ruanjian/c/293875.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值