C++ STL标准库中提供有4种无序关联式容器,unordered_map就在其中。(个人还不太清晰地了解STL和其他容器,等我做题慢慢接触到了,再一点点补充,小伙伴们可以和我一起慢慢吸收这些知识,我觉得做题中用到的时候再去做功课,记忆会更加深刻,所以我这里只给出了我刚才做题中遇到的容器)
unordered_map容器,直译过来就是"无序map容器”,所以我搜了一下map,下边给出map,hash_map,unordered_map的区别和联系:
1.map:有序。底层是用红黑树(二叉搜索树)实现的,空间复杂度是O(n),新增一个结点就申请一个结点的空间。二叉搜索树,搜索出来就是有序的,学过树的应该不难理解。
2.hash_map和unordered_map底层都是hashtable实现的,而unordered_map性能比hash_map要好得多,并且unordered_map已经成为标准,不建议再使用hash_map。
unordered_map:以键值对的形式存储数据,存储的各个键值对的键互不相同且不允许被修改,无序。
使用该容器,代码中应包含如下语句:
- #include <unordered_map>
- using namespace std; //不必须,如果不用则在后续需要手动注明std命名空间
unordered_map模板:
迭代器:(重点看看最后的实例,更有助于理解。)
unordered_map的迭代器是一个指针,指向这个元素,通过迭代器来取得它的值。