请教一个有关map操作的问题

dyz_1984 2008-11-03 08:22:22
我想利用map来统计某CIPNode类型的key出现的次数
CIPNode的声明如下:
class CIPNode
{
private:
unsigned long m_dwSourIPAddr; // 源IP地址
unsigned long m_dwDestIPAddr; // 目的IP地址
unsigned char m_chProtocol; // IP包的协议类型
unsigned long m_dwCouter; // 数据包的数量

public:

CIPNode * pNext; // 指向下一类IP结点

CIPNode();
virtual ~CIPNode();

// 构造函数
CIPNode(unsigned long, unsigned long, unsigned char);

// 增加数据包的数量
void addCount();
// 取得数据包数量
unsigned long getCount();
// 取得源IP地址
unsigned long getSourIPAddr();
// 取得目的IP地址
unsigned long getDestIPAddr();
// 取得协议类型
unsigned char getProtocol();
// 取得协议名称(TCP,UDP,ICMP...)
char * getProtocol_String();

//bool operator < (const CIPNode& ) const;
};

nodetemp为一CIPNode类型的对象
现要统计nodetemp出现的次数

具体操作如下
map<CIPNode,int> Nmap;
map<CIPNode,int>::iterator it;

it=Nmap.find(nodetemp);
if(it!=Nmap.end())
Nmap[nodetemp]++;
else
Nmap[nodetemp]=1;
编译的时候却有如下错误,请指教:
error C2678: binary '<' : no operator defined which takes a left-hand operand of type 'const class CIPNode' (or there is no acceptable conversion)。
备注:我好像并没有使用到有关<的操作
...全文
97 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuedaoli 2008-11-04
  • 打赏
  • 举报
回复
map中得find方法用了比较大小得操作。
你可以查看下map得find得源代码
glacier3d 2008-11-03
  • 打赏
  • 举报
回复
//bool operator < (const CIPNode& ) const;
这个怎么注释了?不需要重载比较运算吗
dyz_1984 2008-11-03
  • 打赏
  • 举报
回复
我也不是很清楚,这个报错感觉有点莫名其妙
Super.Jiju 2008-11-03
  • 打赏
  • 举报
回复
map不支持“<”操作符?

33,027

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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