Вставка новой пары ключ / значение в std :: unordered_map вызывает исключение «вне диапазона» - PullRequest
1 голос
/ 23 сентября 2019

Я работаю над проблемами 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;
    }
};
...