【发布时间】:2016-03-24 17:43:12
【问题描述】:
考虑创建电话簿,但不知道哪个 STL 容器更好。请解释set和map之间的区别。在哪种情况下哪个是更好的选择。
例如,当名称和数字存储在地图中时,如果将名称作为键,则无法使用数字进行搜索,反之亦然。那么究竟哪种容器/数据结构可以达到这个目的呢?
【问题讨论】:
考虑创建电话簿,但不知道哪个 STL 容器更好。请解释set和map之间的区别。在哪种情况下哪个是更好的选择。
例如,当名称和数字存储在地图中时,如果将名称作为键,则无法使用数字进行搜索,反之亦然。那么究竟哪种容器/数据结构可以达到这个目的呢?
【问题讨论】:
内部很少。它们都是红黑树。
map 虽然包含一对作为其值类型。然后,树操作仅对该对中的第一个元素进行操作。然后 Map 添加额外的功能来基于第一个元素进行搜索并仅检索第二个元素。
当你需要 key->value 对时使用 map。当您需要整体跟踪唯一值时使用 set。
【讨论】:
将std::set 视为std::map,其中键也是值。
【讨论】: