uint32_t作为map键的数据类型

时间:2012-02-01 20:03:31

标签: c++ ip-address hash stdmap

我的问题是,如果我使用 uint32_t 作为 std :: map 中键的数据类型,它会创建一个巨大的结构,其中包含每个2 ^的索引32种组合?基本上我想生成一些32位数字,每个数字都应该是唯一的。我有数字,但我想知道使用什么结构/技术将它们保存在内存中。

2 个答案:

答案 0 :(得分:3)

不,它只会创建您插入的条目。 如果你只有一个小数字(你提到一对),将它们放在矢量中并进行线性搜索可能会更快。如果它只是一个小数字,那么地图当然会更快。

答案 1 :(得分:2)

不,地图仅为实际使用的密钥分配空间,而不是整个密钥空间。否则那会很糟糕。