在std :: unordered_map中插入新的键/值对会导致“超出范围”异常

时间:2019-09-22 22:42:41

标签: c++ hashmap hashtable

我正在处理Leetcode挑战,我想利用哈希表或std::unordered_map在每次迭代后存储值。根据我的读物,它应该像说hash[key] = value一样简单。但是,Leetcode编译器会从std::out_of_range中抛出_Map_base::at()异常。

这是我的代码:

#include <unordered_map>

class Solution {
public:
    vector<int> twoSum(vector<int>& nums, int target) {
        std::unordered_map<int,int> hashMap;
        vector<int> result;
        for(int i = 0; i < nums.size(); i++)
        {
            if(hashMap.count(target-nums[i]) > 0)
            {
                result.push_back(hashMap.at(target-nums[i]));
                result.push_back(hashMap.at(nums[i]));
            }
            else
                hashMap[nums[i]] = i;
        }
        return result;
    }
};

0 个答案:

没有答案