Home > other >  Why are there key_type and value_type in std::set
Why are there key_type and value_type in std::set

Time:11-18

After reading this link: https://en.cppreference.com/w/cpp/container/set, I just found that there were two defined types: key_type and value_type in the class std::set. It seems that they are exactly the same thing.

Well, this may be a stupid question but I still want to ask why. Isn't one enough? Why are there two types?

CodePudding user response:

All the stl containers have value_type, and all the associative containers (including std::set, std::map, std::multiset, std::multimap) and unordered associative containers (including std::unordered_set, std::unordered_map, std::unordered_multiset, std::unordered_multimap) have key_type, that means you can perform some general processing (with templates especially) on these containers with the member types.

  • Related