Метод, определенный в классе, ничего не возвращает при вызове в main - PullRequest
0 голосов
/ 04 ноября 2019

Я не понимаю, почему метод twoSum внутри класса Solution ничего не выводит при вызове в main. Пожалуйста, скажи мне почему. Программа должна вывести позиции двух чисел, которые вместе равны целевой переменной. Существует только один действительный набор с этим свойством. Вы можете найти эту проблему по коду leetcode:

Учитывая массив целых чисел, вернуть индексы двух чисел так, чтобы они складывались до определенной цели.

Можно предположить, что каждый вход будет иметьодно решение, и вы не можете использовать один и тот же элемент дважды.

#include <iostream>
#include<vector>
#include<map>
using std::vector;
using std::map;
class Solution {
public:
        vector <int> twoSum(vector<int>& nums, int target) {
        map <int,int> mymap;
        vector <int> res;
        for(int i=0; i<nums.size(); i++)
        {
            mymap[nums[i]]=i;
        }
        for(int i=0; i<nums.size(); i++)
        {
            int result = target - nums[i];
            if(mymap.find(result)!=mymap.end() && mymap[result] != i)
            {
                res.push_back(i);
                res.push_back(mymap[result]);

                return res;
            }
        }

        return res;
    }

};
int main()
{
    vector<int> nums(4);
    int target;
    for(int i=0;i<4;i++)
    {
        std:: cin>> nums[i];
        std:: cout<<nums[i]<<' ';
    }
    std:: cin>>target;
    Solution abc;
    abc.twoSum(nums,target);
    return 0;
}

/// Для массива = [1,2,3,4] и цели = 6, я ожидал, что результат будет [1,3]. Вместо этого он ничего не печатает

1 Ответ

0 голосов
/ 04 ноября 2019

Вы путаете «output», как в «что-то напечатанное на консоли», и «output» как «значение, возвращаемое функцией».

Вызов abc.twoSum(nums,target); в main возвращает вектор целых чисел. В C и C ++ возвращаемые значения могут быть проигнорированы, а затем просто потеряны.

Если вы хотите что-то напечатать, вам нужно сохранить возвращаемое значение функции в переменной или использовать его напрямую, а затем фактически распечатать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...