C++ 如何在c+中创建四元组(ip地址和端口号)键+;?

C++ 如何在c+中创建四元组(ip地址和端口号)键+;?,c++,dictionary,serialization,data-structures,stdtuple,C++,Dictionary,Serialization,Data Structures,Stdtuple,我想创建一个数据结构来高效地存储和检索IP数据包。 我需要使用四个元组(IP地址和端口号)作为数据结构的键。 我已经搜索并找到了map数据结构,但它似乎无法将四元组作为键进行搜索,因此我决定将IP地址和端口号序列化为字符串或任何其他值,然后将其用作map数据结构的键 如何在地图数据结构中使用四元组作为键? 如果最好将四元组更改为单值,那么什么转换更好?(我的意思是在存储和检索性能方面序列化为数字、字符串或任何其他数据类型) 假设:IP地址是无符号的int 32位值。您可以使用自己的类型作为键,并

我想创建一个数据结构来高效地存储和检索IP数据包。 我需要使用四个元组(IP地址和端口号)作为数据结构的键。 我已经搜索并找到了map数据结构,但它似乎无法将四元组作为键进行搜索,因此我决定将IP地址和端口号序列化为字符串或任何其他值,然后将其用作map数据结构的键

如何在地图数据结构中使用四元组作为键? 如果最好将四元组更改为单值,那么什么转换更好?(我的意思是在存储和检索性能方面序列化为数字、字符串或任何其他数据类型)


假设:IP地址是无符号的int 32位值。

您可以使用自己的类型作为键,并提供一个比较运算符“?
std::tuple
具有词法顺序(假设其复合词具有)。所以
std::tuple
可以用作键。(但在IMO中,使用具有更好名称的专用结构会更好)。作为地图数据结构的索引是很长的。我该怎么做?