STL各种map比较

STL各种map比较

1、map底层是用红黑树实现的,查找时间复杂度是O(log(n));

2、hash_map底层是用hash表存储的,查询时间复杂度是O(1);

3、unordered_map和hash_map基本一样,只是unordered_map已经加到C++11标准(编译时添加编译选项:–std=c++11),而hash_map未加入在C++11标准中。
  由于map使用红黑树实现,所以是有序存储的,因此map的key需要定义operator<,而hash_map和unordered_map是基于hash无序存储的,因此只需要重载operator==。
4、multimap 是 C++ 标准库中的一个容器,它存储的元素都是键值对,并且允许有重复的键,底层由红黑树实现

猜你喜欢

转载自blog.csdn.net/doubleintfloat/article/details/142548668