我有存储有关ARP数据包的信息的结构,我需要将ARP请求和应答数据包保存在一起。我想为此使用std :: map,密钥和映射值是该ARP结构,并且我将使用find操作符来计算带请求的答复。C++ stl :: map查找结构
我的问题是我怎么能说map :: find来比较struct中的一些成员。
的什么,我试图描述struct arp_packet : public packet_info
{
u_short type; // 0x0001 request
// 0x0002 reply
struct ipv4_address ip_sender;
struct ipv4_address ip_target;
};
我会节省这样
std::map<arp_packet*, arp_packet*>
首先映射值在地图中的所有请求为NULL,但磨应答包
例子来自我会使用find方法来匹配请求。
那么我应该如何实现地图将arp_packet *作为关键字,并找到它需要另一个arp_packet *并使用ip_sender和ip_target匹配它?
既然你存储原始指针,你只需要提供一个谓词,提供适当低于类型比较'arp_packet *' – Chad 2012-03-10 15:47:38