2016-04-21 161 views
-2

我想创建一个数据结构来有效地存储和检索IP数据包。 我需要使用四元组(IP地址和端口号)作为数据结构的关键字。 我已经搜索,我发现地图数据结构,但它似乎无法搜索四元组作为关键,所以我决定将IP地址和端口号序列化为一个字符串或任何其他值,然后将其用作地图数据结构的关键。如何在C++中创建四元组(ip地址和端口号)键?

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

假设:IP地址是无符号整型32位值。

+0

http://en.cppreference.com/w/cpp/utility/tuple? –

+0

'std :: tuple'具有词汇顺序(假设它的化合物具有)。所以'std :: tuple '可以用作关键字。 (但使用更好名称的专用结构会更好IMO)。 – Jarod42

+0

这个语法std :: tuple 做得很好,现在我想简单介绍一下这个语法。作为地图数据结构的索引是非常长的。我怎样才能做到这一点 ? – user3728748

回答

0

您可以使用自己的类型作为键,并在地图中提供比较运算符'<'。