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++如何删除map容器中指定值的元素详解
前言 大家都知道map容器是C++ STL中的重要一员,平时会遇到删除map容器中value为指定元素的问题,例如删除所有字符串为"123"或者能整除3的元素. 一.map容器下的方法说明 由于map容器下的方法较多,这里只列举代码中用到的几个方法: insert()方法: //插入val到pos的后面,然后返回一个指向这个元素的迭代器 iterator insert( iterator pos, const pair<KEY_TYPE,VALUE_TYPE> &v
-
C++标准模板库map的常用操作
一:介绍 map是STL的关联式容器,以key-value的形式存储,以红黑树(平衡二叉查找树)作为底层数据结构,对数据有自动排序的功能. 命名空间为std,所属头文件<map> 注意:不是<map.h> 二:常用操作 容量: a.map中实际数据的数据:map.size() b.map中最大数据的数量:map.max_size() c.判断容器是否为空:map.empty() 修改: a.插入数据:map.insert() b.清空map元素:map.clear() c.删除指定
-
C++中 map的基本操作
1.map简介 map是一类关联式容器.它的特点是增加和删除节点对迭代器的影响很小,除了那个操作节点,对其他的节点都没有什么影响.对于迭代器来说,可以修改实值,而不能修改key. 2.map的功能 自动建立Key - value的对应.key 和 value可以是任意你需要的类型. 根据key值快速查找记录,查找的复杂度基本是Log(N),如果有1000个记录,最多查找10次,1,000,000个记录,最多查找20次. 快速插入Key - Value 记录. 快速删除记录 根据Key 修改val
-
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::ma
-
java map中相同的key保存多个value值方式
目录 map中相同的key保存多个value值 如下代码 Map中相同的键Key不同的值Value实现原理 实现原理 总结 map中相同的key保存多个value值 在java中,Map集合中只能保存一个相同的key,如果再添加相同的key,则之后添加的key的值会覆盖之前key对应的值,Map中一个key只存在唯一的值. 如下代码 package test; import org.junit.Test; import java.util.HashMap; import java.util.Id
-
Java如何在Map中存放重复key
目录 如何在Map中存放重复key 1.概述 2.将集合作为Value 3.使用Apache Commons Collections 4.Guava Multimap 5.自定义MultiMap Map出现重复Key值叠加到上一个key中 如何在Map中存放重复key 1.概述 本文介绍几种处理Map中一个key对多个value的方法.在JDK标准Map实现中当我们尝试在一个key下插入多个value,那么后续的value会覆盖前面的value. Map<String, String> map
-
python语法之通过value找key问题
目录 python通过value找key 方法一 方法二 解决问题 python求value最大的key值 python通过value找key 方法一 raw_dict={'domain_id': '$domain_id', 'enabled': '$enabled', 'name': '$username'} key_list = list(filter(lambda k: raw_dict.get(k) == "$domain_id", raw_dict.keys())) pr
-
js循环map 获取所有的key和value的实现代码(json)
下面的方法一语方法二都是经过我们小编测试并运行的 方法一: json格式定义 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head
-
mybatis返回类型map时如何将key大写转为小写
亲测: SELECT DEPTNO as "deptno",DEPTNAME,DEPTGRADE,PARENTDEPT FROM VMGR_DEPT ORDER BY DEPTGRADE,DEPTNO 别人案例: <select id="selectBlogRetHashMap" parameterType="int" resultType="map"> SELECT id AS "id", t
-
sql查询返回值使用map封装多个key和value实例
直接上代码,代码是测试过的 1.重写ResultHandler public class MapResultHandler implements ResultHandler { private final Map mappedResults = new HashMap(); @Override public void handleResult(ResultContext context) { @SuppressWarnings("rawtypes") Map map = (Map) c
-
Golang如何实现任意进制转换的方法示例
前言 最近因为工作的需要,需要写个短链服务,用到了10->62进制,网上找了一个,可以转换最多76位进制的博客,现在分享出来,下面话不多说了,来一起看看详细的介绍吧. 压缩数据用,无损压缩 示例代码: package main import ( "fmt" "math" "strconv" "strings" ) var tenToAny map[int]string = map[int]string{0: "
-
golang 如何获取map所有key的方式
最佳方式:根据map的长度,新建一个数组,遍历map逐个压入 方法1(效率很高): func getKeys1(m map[int]int) []int { // 数组默认长度为map长度,后面append时,不需要重新申请内存和拷贝,效率很高 j := 0 keys := make([]int, len(m)) for k := range m { keys[j] = k j++ } return keys } 方法2(效率很高): func getKeys2(m map[int]int) [
-
Java Map如何根据key取value以及不指定key取出所有的value
根据key取其value Map<String, String> map = new HashMap<String, String>(); map.put("b", "4"); map.put("a", "5"); map.put("c", "3"); map.put("d", "5"); // 根据key获取 其value
随机推荐
- 专家八招秘技防范春节病毒爆发
- rsync详解之exclude排除文件
- Android拍照得到全尺寸图片并进行压缩
- 使用aspnet_regiis.exe重新注册.NET Framework
- Ajax留言本源码 提供下载了
- jQuery实现仿QQ空间装扮预览图片的鼠标提示效果代码
- PHP magento后台无法登录问题解决方法
- Go语言计算两个经度和纬度之间距离的方法
- Android开发笔记 Handler使用总结
- PHP使用mysql_fetch_object从查询结果中获取对象集的方法
- DIV+CSS+JS不间断横向滚动实现代码
- EasyUI加载完Html内容样式渲染完成后显示
- Javascript 一些需要注意的细节(必看篇)
- 浅谈js原生拖放
- Linux的常用网络命令
- Nginx配置详解(推荐)
- Java实现冒泡排序与双向冒泡排序算法的代码示例
- 轻松学习C#的抽象类
- jquery $(this).attr $(this).val方法使用介绍
- Opencv光流运动物体追踪详解