struct作为map的key时,需要重载该结构体

当结构体作为map中的key时,这个结构体必须重载"<"运算符,  否则将出错,看我完整代码:

 

#ifndef WIN32
#include <string.h>
#else
#include <string>
#endif
#include <iostream>
#include <map>
using namespace std;
typedef struct KeyNode_s
{
long key;
bool operator < (const KeyNode_s& s) const
{
return key < s.key;
}
}KeyNode;
typedef struct N_1
{
int c;
}CRTPSession;
typedef struct N_2
{
int d;
}CJOpPlayback;
typedef struct SessionInfo_s
{
CRTPSession*	_session;
CJOpPlayback*	_opPlayback;
SessionInfo_s()
{
_session = NULL;
_opPlayback = NULL;
}
}SessionInfo;
typedef struct Hello_s
{
char name[20];
Hello_s(const char* s)
{
strcpy(name, s);
}
bool operator < (const Hello_s& s) const
{
return strcmp(name, s.name) < 0;
}
}Hello;
typedef std::pair<KeyNode, Hello> GBClientPair;
typedef std::map<GBClientPair, SessionInfo> RtpSessionList;	
// map中的key是pair, 但是pair中有结构体, 所以这些结构体必须重载"<"运算符
void test()
{
KeyNode knode;
SessionInfo sinfo;
Hello h("world");
RtpSessionList list;
GBClientPair pa(knode, h);
list[pa] = sinfo;
}
int main()
{
test();
return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/403958.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

解决vuex中store保存数据,刷新页面会清空得问题

1.在App.vue下加入 mounted() {window.addEventListener("unload", this.saveState);},methods: {saveState() {sessionStorage.setItem("state", JSON.stringify(this.$store.state));}}2.在store下的index.js文件下修改 state:sessionStorage.getItem(…

arm MMU详解

一、MMU的产生许多年以前&#xff0c;当人们还在使用DOS或是更古老的操作系统的时候&#xff0c;计算机的内存还非常小&#xff0c;一般都是以K为单位进行计算&#xff0c;相应的&#xff0c;当时的程序规模也不大&#xff0c;所以内存容量虽然小&#xff0c;但还是可以容纳当时…

welcome

我的博客&#xff1a;http://www.tanglei.name转载于:https://blog.51cto.com/tl3shi/910602

二叉树的建立与三种遍历

树是一种数据结构&#xff0c;为什么叫它“树”&#xff0c;因为它倒过来就是一棵树 根在上&#xff0c;而叶在下 其概念主要有根、父、子、深、叶等&#xff0c; 如上图&#xff1a;A为这棵树的根 B为D的父&#xff0c;而D则为B的子 E、F、G互为兄弟, D也可以叫叶 这也是一棵深…

vue中如何设置和清除定时器setInterval

data中生明定时器 方法里使用和清除定时器

register_sysctl_table实现内核数据交互

Sysctl是一种用户应用来设置和获得运行时内核的配置参数的一种有效方式&#xff0c;通过这种方式&#xff0c;用户应用可以在内核运行的任何时刻来改变内核的配置参数&#xff0c;也可以在任何时候获得内核的配置参数。通常&#xff0c;内核的这些配置参数也出现在proc文件系统…

VMware10中安装Mac10.9.3

教程网上确实有&#xff0c;我主要参考这个&#xff1a;http://bbs.pcbeta.com/viewthread-1418055-1-1.html 但是我按它的步骤&#xff0c;用我自己下载的mac os x 10.9.3原版.dmg在启动系统时就是会失败&#xff0c;我试过提取里面的InstallESD.dmg(取了2次&#xff0c;第一…

cisco 交换机通过console 导入 IOS

准备说明&#xff1a; 电脑上安装有 SecureCRT 软件 导入 IOS&#xff1a; 第一步&#xff1a;使用 SecureCRT 连接上交换机。进入rommon 模式&#xff08;CtrlBreak组合键&#xff09; 第二部&#xff1a;设置波特率为115200.调整波特率&#xff0c;可以大大减少灌IOS的时间&a…

localStorage.getItem 往浏览器里面储存数据到本地localStorage

借鉴https://blog.csdn.net/aaa333qwe/article/details/79025336 往浏览器里面储存数据 localStorage.setItem(‘todos’, JSON.stringify(value)) 读取 const list JSON.parse(localStorage.getItem(‘todos’)) || []

SchemaSpy:数据库构架文档生产器,以及该软件的部分缺陷修改。提供工具包下载...

&#xff08;一&#xff09;SchemaSpy 官方网站&#xff1a;http://schemaspy.sourceforge.net/ 该软件名称的官方解释为&#xff1a;Graphical Database Schema Metadata Browser 我的压缩包&#xff08;SchemaSpy_5.0.0_工具包&#xff09;&#xff1a; SchemaSpy_5.0.0.jar&…

container_of分析

1.container_of宏 1> Container_of在Linux内核中是一个常用的宏&#xff0c;用于从包含在某个结构中的指针获得结构本身的指针&#xff0c;通俗地讲就是通过结构体变量中某个成员的首地址进而获得整个结构体变量的首地址。2>接口&#xff1a;container_of(ptr, type, mem…

ZOJ 1450 Minimal Circle 点集的最小圆覆盖

From: http://blog.csdn.net/zmx354/article/details/17076267 给定一个点集&#xff0c;求出能覆盖点集内所有点的半径最小的圆。包含点在圆上的情况。个人感觉算是比较麻烦的计算几何模板了。 在网上看了很多解题&#xff0c;大多数都摘抄自《求一个包含点集所有点的最小圆…

poj1050最大子矩阵和

这篇是看了别人的报告写的&#xff0c;就当是屡屡思路好了. 题目大意。给定一个n阶矩阵&#xff08;方阵&#xff09;,每一个元素中存在一个数字.任务就是求出一个最大的子矩阵使得矩阵元素之间的和是最大的. n100; 1.矩阵A[m][n]的和能够直接 sumA[i][j] ( i 0 to n-1 j0 to …

vue里写三元判断绑定class和style

<a-select:disabled"(dataBaseId ? false : true)"style"width: 100%"showSearchplaceholder"请输入选择表名"v-decorator"[tableId,{rules: [{ required: false, message: 请输入选择表名}]}]":defaultActiveFirstOption"fa…

命令行选项解析函数(C语言):getopt()和getopt_long()

上午在看源码项目 webbench 时&#xff0c;刚开始就被一个似乎挺陌生函数 getopt_long() 给卡住了&#xff0c;说实话这函数没怎么见过&#xff0c;自然不知道这哥们是干什么的。于是乎百度了一番&#xff0c;原来是处理命令行选项参数的&#xff0c;的确&#xff0c;正规点的大…

centos5.3搭建安全高效的LNMP服务器

操作系统基于centos 5.3 #!/bin/bash # BY kerryhu # QQ:263205768 # MAIL:king_819163.com # BLOG:http://kerry.blog.51cto.com # Please manual operation yum of before Operation..... # yum install ntp vim-enhanced gcc gcc-c flex bison autoconf \ # automake …

夺命雷公狗ThinkPHP项目之----企业网站2之数据库的快速设计

我们在一个项目的时候&#xff0c;花费最多事件的估计还是数据库的时间了&#xff0c;我们的数据库暂时就这样设计好了&#xff1a; 暂时我们的数据库就这样设计好了用下先,建好后如下所示&#xff1a; 转载于:https://www.cnblogs.com/leigood/p/5411017.html

vue监听对象某一个属性

watch: {uploadObj: {//监听对象deep: true,handler: function(value) {if (!value.receiver && !value.receiveBastionIds) {this.userArrShow true;this.machineSelectShow true;this.$message.warning("接收人及接收堡垒机至少选择一项&#xff0c;请重新填写…

find 命令搜索符号链接文件夹的方法

From: http://blog.csdn.net/caspiansea/article/details/7456048 find 命令默认情况下&#xff0c;不会到符号链接指向的文件夹下面搜索匹配的文件。 要想达到此目的&#xff0c;可以使用如下的方法&#xff1a; [plain] view plaincopyprint?find -L dirname -name "…

typedef和define具体的详细区别

1) #define是预处理指令&#xff0c;在编译预处理时进行简单的替换&#xff0c;不作正确性检查&#xff0c;不关含义是否正确照样带入&#xff0c;只有在编译已被展开的源程序时才会发现可能的错误并报错。例如&#xff1a; #define PI 3.1415926 程序中的&#xff1a;areaPI*r…