为什么std::set中有key_type和value_type
Why are there key_type and value_type in std::set
看完这个link: https://en.cppreference.com/w/cpp/container/set,我发现在class std::set
。看来他们是一回事。
好吧,这可能是个愚蠢的问题,但我还是想问问为什么。一个还不够吗?为什么有两种类型?
所有stl容器都有value_type
,所有关联容器(包括std::set
、std::map
、std::multiset
、std::multimap
)和无序关联容器(包括 std::unordered_set
、std::unordered_map
、std::unordered_multiset
、std::unordered_multimap
)具有 key_type
,这意味着您可以对这些容器执行一些常规处理(尤其是模板)与成员类型。
看完这个link: https://en.cppreference.com/w/cpp/container/set,我发现在class std::set
。看来他们是一回事。
好吧,这可能是个愚蠢的问题,但我还是想问问为什么。一个还不够吗?为什么有两种类型?
所有stl容器都有value_type
,所有关联容器(包括std::set
、std::map
、std::multiset
、std::multimap
)和无序关联容器(包括 std::unordered_set
、std::unordered_map
、std::unordered_multiset
、std::unordered_multimap
)具有 key_type
,这意味着您可以对这些容器执行一些常规处理(尤其是模板)与成员类型。