C++中SET与MAP的区别

C++中SET与MAP的区别,c++,stl,set,C++,Stl,Set,正在考虑创建一个电话簿,但混淆了哪个STL容器是更好的选择。请解释一下set和map的区别。在哪种情况下,哪一个是更好的选择 例如,当名称和数字存储在地图中时,如果将名称作为键,则无法使用数字进行搜索,反之亦然。那么,哪种容器/数据结构正好满足这一目的呢?将std::set想象成一个std::map,其中键也是值。内部很少。它们都是红黑相间的树 但映射包含一对作为其值类型。然后,树操作仅对该对中的第一个元素进行操作。Map然后根据第一个元素向搜索添加附加功能,并仅检索第二个元素 当您需要键->值

正在考虑创建一个电话簿,但混淆了哪个STL容器是更好的选择。请解释一下set和map的区别。在哪种情况下,哪一个是更好的选择


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

将std::set想象成一个std::map,其中键也是值。

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

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

当您需要键->值对时,请使用映射。当您需要作为一个整体跟踪唯一值时,请使用set。

的可能重复项、的可能重复项等。