C ++中set和map有什么区别

时间:2016-03-24 17:43:13

标签: c++ stl set

考虑创建电话簿但是混淆了哪个STL容器是更好的选择。请解释集合和地图之间的区别。在哪种情况下哪一个是更好的选择。

例如,当名称和数字存储在地图中时,如果将名称设为键,则无法使用数字进行搜索,反之亦然。那么哪个容器/数据结构正是为了这个目的呢?

2 个答案:

答案 0 :(得分:3)

内部很少。它们都是红黑树。

map虽然包含一对作为其值类型。然后,树操作仅对该对中的第一个元素进行操作。然后,Map会根据第一个元素添加其他功能进行搜索,并仅检索第二个元素。

当您需要key->值对时使用map。当您需要整体跟踪唯一值时使用set。

答案 1 :(得分:0)

std::set视为std::map,其中键也是值。