当结构体作为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;
}

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

  1. 结构体作为STL map的key时需要注意什么? (某公司招聘面试试题)已跪~~~~(_)~~~~

    某公司招聘的面试环节, 有这样一个题目:结构体作为STL map的key时需要注意什么? 对于懂STL map的同学来说, 这个题目还是比较easy的, 先看程序: #include <iost ...

  2. go struct 静态函数_Go语言学习笔记(四)结构体struct 接口Interface 反射reflect...

    加 Golang学习 QQ群共同学习进步成家立业工作 ^-^ 群号:96933959 结构体struct struct 用来自定义复杂数据结构,可以包含多个字段(属性),可以嵌套: go中的struc ...

  3. 原:开辟内存时,可以以结构体为单位,这样测试,是对的吧?

    原创一个,也不是太确定,有问题希望大家指正了. #include <stdio.h> typedef struct complex_float {     float real;      ...

  4. golang常用库之mapstructure包 | 多json格式情况解析、GO json 如何转化为 map 和 struct、Go语言结构体标签(Struct Tag)

    文章目录 golang常用库之mitchellh/mapstructure包 | go将map转换为struct 一.msgpack 二.背景 三.多json格式情况解析使用思路 四.mapstruc ...

  5. java map byte[],java中byte数组不能作为map的key使用

    今天在使用java写代码的时候,用byte数组作为map的key来使用,发现在遍历的时候get到之前传进去的值总是为空,很是困惑,后来查了下资料发现java中的字节数组不能直接作为map的key来使用 ...

  6. 技巧:Go 结构体如何转换成 map[string]interface{}

    本文介绍了Go语言中将结构体转成map[string]interface{}时你需要了解的"坑",也有你需要知道的若干方法. 我们在Go语言中通常使用结构体来保存我们的数据,例如要 ...

  7. Linux总线驱动-02: struct bus_type 结构体

    http://blog.csdn.net/cppgp/article/details/6333359 本文测试系统为:Ubuntu 10.10 x86_64 2.6.35-24-generic 上节中 ...

  8. 【C 语言】结构体 ( 结构体中嵌套一级指针 | 分配内存时先 为结构体分配内存 然后再为指针分配内存 | 释放内存时先释放 指针成员内存 然后再释放结构头内存 )

    文章目录 一.结构体中嵌套一级指针 1.声明 结构体类型 2.为 结构体 变量分配内存 ( 分配内存时先 为结构体分配内存 然后再为指针分配内存 ) 3.释放结构体内存 ( 释放内存时先释放 指针成员 ...

  9. 内核中用于数据接收的结构体struct msghdr

    我们从一个实际的数据包发送的例子入手,来看看其发送的具体流程,以及过程中涉及到的相关数据结构.在我们的虚拟机上发送icmp回显请求包,ping另一台主机172.16.48.1.我们使用系统调用send ...

最新文章

  1. excel 数据导入(附工具类)
  2. BZOJ 2038: [2009国家集训队]小Z的袜子(莫队算法例题)
  3. 深度学习中反向传播得到的损失是一个标量
  4. jmap java opts_jmap --查看JVM内存使用详情
  5. Java Servlet的配置文件web.xml配置内容和具体含义
  6. oc 协议 回调 静态成员_OC问题
  7. pet缩聚流程图_PET生产工艺流程分解.ppt
  8. C语言学习—运算符—“~”取反符号的理解
  9. 计算机课代表专业演讲稿,语文课代表发言稿(精选多篇)
  10. 浅论信息化环境下的印刷业发展
  11. 老鸟带你画tiled lines
  12. Java 添加、读取、删除PPT文档属性
  13. 全国天气查询API接口
  14. 【紧急情况】:回宿舍放下书包的我,花了20分钟敲了一个抢购脚本
  15. Ubuntu/Deepin下Python3.8出现SSL错误的解决方案
  16. 多路IO复用(Linux)
  17. Linux下开MC服务器
  18. java 时间戳间隔_JAVA判断两个时间戳,相隔多少分钟
  19. RHEL7OSP-6.0的Linux底层管理
  20. 点击次数、访问次数、访问者人数、综合浏览量和唯一浏览量有何区别?(转)...

热门文章

  1. 季节性时间序列数据分析_如何指导时间序列数据的探索性数据分析
  2. 2023. 连接后等于目标字符串的字符串对
  3. 数据科学领域有哪些技术_领域知识在数据科学中到底有多重要?
  4. 别把“运气”当“实力”
  5. 1.移动端测试知识笔记(面试必备,测试点,adb命令)
  6. C++常用的系统函数
  7. python学习笔记(一):python入门
  8. jmeter 插件 监视器 图形界面使用
  9. JS 限制input框的输入字数,并提示可输入字数
  10. ajaxfileupload 返回值_ajaxFileUpload上传文件返回json无法解析