一个map的问题

ljan 2003-09-29 06:35:21
需要由多个变量来定位一个值,也就是说Key由多个变量组成

原先想用多维数组查找,但可能生成的多维数组比较大,就想用map

#pragma warning(disable:4786)

#include "stdafx.h"
#include <map>
using namespace std;

typedef struct _T
{
int a;
int b;
int c;
} T;

int main(int argc, char* argv[])
{
T abc;
abc.a = 1;
abc.b = 2;
abc.c = 3;

typedef map<T, int> T2Int;

T2Int t;
t.insert(T2Int::value_type(abc, 100));

return 0;
}

在VC下编译出错,如何解决呢,有人知道吗?
...全文
112 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ljan 2003-09-29
  • 打赏
  • 举报
回复
good, thank you...
短歌如风 2003-09-29
  • 打赏
  • 举报
回复
map的key要求是copyable和comparable,你的类型T不符合这个要求。
为它定义operator <,使它可以比较:

inline bool operator< (const T& Left, const T& Right)
{
return
(Left.a != Right.a) ? (Left.a < Right.a) :
(Left.b != Right.b) ? (Left.b < Right.b) :
(Left.c < Right.c);
}
Andy84920 2003-09-29
  • 打赏
  • 举报
回复
把编译错误帖出来吗.

怎么我觉得(int argc, char* argv[])好像没有用啊?

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧