lizhashi0623 2017-04-19 10:33 采纳率: 100%
浏览 1559
已采纳

c++, vector subscript out of range 哪里有问题?

 #include<iostream>
#include<vector>
#include<unordered_map>
#include<algorithm>
using namespace std;


class Solution {
public:
    vector<vector<int>> For4Sum(vector<int> &nums,int target) {
        vector<vector<int>> result;
        unordered_map<int,vector<pair<int,int>>> map;

        sort(nums.begin(), nums.end());

        if (nums.size() < 4) return result;

        for (int i = 0; i < nums.size()-1; i++) {
            for (int j = i + 1; j < nums.size(); i++) {
                map[nums[i]+nums[j]].push_back(pair<int,int>(i,j));
            }
        }

        for (int i = 0; i < nums.size() - 1; i++) {
            for (int j = 0; j < nums.size(); i++) {

                int key = target - nums[i] - nums[j];
                if (map.find(key) != map.end()) {
                    for (int k = 0; k < map[key].size(); k++) {
                        if (i < map[key][k].first) {
                            result.push_back({ nums[i], nums[j], nums[map[key][k].first],nums[map[key][k].second] });
                        }
                    }
                }

            }
        }

        sort(result.begin(), result.end());
        result.erase(unique(result.begin(),result.end()),result.end());

        return result;
    }


};


int main() {

    Solution a;
    vector<int> test;
    int target;
    int temp = 0;
    cout << "input target" << endl;
    cin >> target;

    cout << "input nums" << endl;
    while (cin >> temp) {//ctrl+z  
        test.push_back(temp);
    }


    vector<vector<int>> result; 
    result=a.For4Sum(test, target);

    for (int i = 0; i < result.size(); i++) {
        for (int j = 0; j < result[i].size(); j++)
            cout << result[i][j] << " " << endl;
        cout << endl;
    }


    system("pause");
    return 0;
}
  • 写回答

4条回答

  • Esdeath_yzh 2017-04-19 10:41
    关注

    你的for循环里写的好像全是i++。。。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 matlab有关常微分方程的问题求解决
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?
  • ¥100 求三轴之间相互配合画圆以及直线的算法
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考