C++ 中的unordered_map

一、hash_map、unordered_map

内部结构:都是采用哈希表实现的。

区别:由于在C标准库中没有定义散列表,标准库的实现提供了一个名为hash_map的非标准散列表。而从C++11开始,哈希表已经添加到C标准库中,决定对类使用备用名称unorder_map。

unordered_map使用

#include 

//取得键和值:
unordered_map hash;
unordered_map::iterator it;//迭代器
it->first;               // same as (*it).first   (the key value)
it->second;              // same as (*it).second  (the mapped value) 

简单例子

Leetcode 第一题

class Solution {
public:
    vector twoSum(vector& nums, int target) {
        unordered_map hashtable;
        for (int i = 0; i < nums.size(); ++i) {
            auto it = hashtable.find(target - nums[i]);
            if (it != hashtable.end()) {
                return {it->second, i};
            }
            hashtable[nums[i]] = i;
        }
        return {};
    }
};

源码解析

源码网址

你可能感兴趣的:(c++)