我的问题是,如果我使用 uint32_t 作为 std :: map 中键的数据类型,它会创建一个巨大的结构,其中包含每个2 ^的索引32种组合?基本上我想生成一些32位数字,每个数字都应该是唯一的。我有数字,但我想知道使用什么结构/技术将它们保存在内存中。
答案 0 :(得分:3)
不,它只会创建您插入的条目。 如果你只有一个小数字(你提到一对),将它们放在矢量中并进行线性搜索可能会更快。如果它只是一个小数字,那么地图当然会更快。
答案 1 :(得分:2)
不,地图仅为实际使用的密钥分配空间,而不是整个密钥空间。否则那会很糟糕。