我想请教一下,下面这三行代码什么意思阿,散列表不是很懂艾

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
vector<int> twoSum(vector<int>& nums, int target) {
        unordered_map<int, int> 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 {};
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果