struct作为map的key时,需要重载该结构体
2014-09-03 14:52
453 查看
当结构体作为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; }
相关文章推荐
- 结构体作为map的key或放入set中,需要重载<运算符
- 结构体作为map的key或放入set中,需要重载<运算符
- 结构体作为map的key或放入set中,需要重载<运算符
- 结构体作为map的key或放入set中,需要重载<运算符
- groovy 使用变量值作为 map 的key--需要注意的
- 【C++】自定义结构体作为map的key
- 使用类/结构体作为boost::unordered_map中的key时需要实现hash_value函数
- 结构体作为STL map的key时需要注意什么? (某公司招聘面试试题)
- C++结构体作为map的key的时候需要重载<运算符
- 为实现非系统类作为Map的key需要覆写hashCode()和equals()方法
- struct作为map的key
- 使用map来进行票数统计工作,循环输入多个人名,作为key存储到map中,对应的value就是该人获得的票数(即重复输入的次数),当重复输入时,需要对相应的数据进行修改。最红输quit结束循环,打印
- 对象作为 map 的 key 时,需要重写 equals 方法和 hashCode 方法
- 如何根据CSV格式的第一列作为key,将后几列作为字符串放入map集合并写入文件的操作
- 自定义类型作为HashMap或HashTable的key需要注意哪些问题
- 以自定义对象作为hashmap的key需要注意什么
- 自定义结构体做为map里面的key的写法
- java中map使用非系统类作为key
- Map中如何把没有定义操作符<的类作为key
- Mybatis select返回值为map时,选取表字段的两列作为key,value