unordered_map自定义key


struct MAP_KEY {

double first;

double second;

double third;

double forth;

};

struct KeyHash

{

std::size_t operator()(const MAP_KEY & k) const

{

using boost::hash_value;

using boost::hash_combine;

std::size_t seed = 0;

hash_combine(seed,hash_value(k.first));

hash_combine(seed,hash_value(k.second));

hash_combine(seed,hash_value(k.third));

hash_combine(seed,hash_value(k.forth));

return seed;

}

};

struct cmp_fun //比较函数 ==

{

bool operator()( MAP_KEY addr1, MAP_KEY addr2) const {

return ((addr1.first==addr2.first)&&(addr1.second==addr2.second)&&(addr1.third==addr2.third)&&(addr1.forth==addr2.forth));

}

};

static std::tr1::unordered_map<MAP_KEY, double,KeyHash,cmp_fun> Map_Dist;

本来想把四个double转换成char*,发现是个bug,就自己写了个结构体,之后相同的情况可以如此处理。

时间: 2024-10-13 14:33:46

unordered_map自定义key的相关文章

c++ unordered_map 自定义key

C++11新增了一类散列容器包括unordered_set, unordered_map, unordered_multiset, unordered_multimap, 即之前熟悉的hash_set, hash_map等. 这类容器底层以哈希表实现之,通过unordered_map介绍下这类容器的使用. unordered_map 是一个模板类,需要我们提供5个魔板参数.依次为:key值的类型, value值的类型,hash函数, 等价函数, 容器分配器.其中后三个有默认参数,那我们是不是只需

Spark用Java实现二次排序的自定义key

本人在研究Spak,最近看了很多网上的对于SPARK用Java实现二次排序的方法,对于自定义key的做法 基本上都是实现Ordered<>接口,重写$greater.$greater$eq.$less.$less$eq.compare.compareTo方法,定义hashCode.equals····· 感觉好麻烦,其实我们自定义key只是用了里面的compareTo方法,其他的$greater.$greater$eq.$less.$less$eq.compare 不用做任何改动,hashCo

zabbix专题:第九章 自定义key(案例:监控内存,监控nginx状态)

第九章 自定义key 对Linux有兴趣的朋友加入QQ群:476794643 在线交流 本文防盗链:http://zhang789.blog.51cto.com 为什么要自定义KEY 有时候我们想让被监控端执行一个zabbix没有预定义的检测,zabbix的用户自定义参数功能提供了这个方法.我们可以在客户端配置文件zabbix_angentd.conf里面配置UserParameter. 语法如下: UserParameter=key,command 用户自定义参数包含一个key和一个命令,ke

Zabbix 之自定义Key

1.监控进程/usr/local/zabbix/bin/zabbix_get -s 127.0.0.1 -k "net.tcp.service[http]" 2.监控端口/usr/local/zabbix/bin/zabbix_get -s 127.0.0.1 -k "net.tcp.port[,80]" 结果:1存在,0不存在: 3.进程数量/usr/local/zabbix/bin/zabbix_get -s 127.0.0.1 -k "proc.nu

zabbix自定义KEY监控服务状态[不需要端口]

zabbix监控Windows下的服务并实现告警和重启服务 首先 创建获取服务状态的脚本 一.Windows脚本 @echo off set srvname=%1 for /f "skip=3 tokens=4" %%i in ('sc query %srvname%') do set "zt=%%i" &goto :next :next if /i "%zt%"=="RUNNING" ( :服务运行正常,返回1. e

zabbix -- 自定义key

为什么要自定义KEY?有时候我们想让被监控端执行一个zabbix没有预定义的检测,zabbix的用户自定义参数功能提供了这个方法.我们可以在客户端配置文件zabbix_angentd.conf里面配置UserParameter. UserParameter=key,command   #语法 用户自定义参数包含一个key和一个命令,key必须整个系统唯一,配置好之后,重启客户端. 然后配置item,在key的位置填上我们自定义的key即可 #命令示例 UserParameter=ping,ech

zabbix开源监控系列三(自定义key监控nginx_status)

需求场景 lnmp环境 3台nginx 每台nginx服务上有几个虚拟主机,分别跑了不同的域名,准备对主站做nginx status 状态做监控,监控每一台nginx的活动链接数,和总的连接数. 解决方案1 每台nginx server的主配置文件 都配置status模块  代码端如下 location /ngst{   stub_status on;   access_log off;   allow 127.0.0.1;   allow xxx.xxx.xxx.xxx;   deny all

zabbix 之自定义key(10)

自定义key 在zabbix agent端的配置文件由用户通过userparameter指令定义用户自定义参数 userparameter=<key>,<command> userparameter=<key[*]>,<command> $1...$9 实例1(不带参数) [[email protected] ~]# vim /etc/zabbix/zabbix_agentd.conf UserParameter=system.memory.free,awk

zabbix agent 自定义KEY执行报错

zabbix agent 自定义KEY时,报错"Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all" 环境:Centos 6.4 X64 ,zabbix agent 2.4.2,YUM方式安装 在zabbix_agentd.conf里添加了一条监控项,用于统计系统当前各类TCP的连接数 UserPa