Нет соответствующей функции для вызова в этом коде - PullRequest
0 голосов
/ 07 марта 2019

Это еще одно «Что беспокоит мой код, когда я получаю сообщение« Нет подходящей функции для вызова »- ошибка». Проблема в том, что вопросы об этом относятся к конкретному и не могут быть применены к коду вообще. Мой вопрос также будет довольно конкретным.

Мой код:


string largestNumber(vector<int>& nums)
{
    string finalAnswer = "";
    vector<int> answer{nums[0]};
    if (nums.size() == 1)
    {
    return toStringconverter(nums[0]);
    }
    else
    {
        for (int i = 1 ; i < nums.size() ; i++)
        {
            answer.insert(getNumber(answer, nums[i]), nums[i]);
        }
    }
    for(int i = 0 ; i < answer.size() ; i++)
    {
        finalAnswer = finalAnswer + toStringconverter(answer[i]);
    }
}

Я получаю сообщение об ошибке в строке answer.insert(getNumber(answer, nums[i]), nums[i]);. Это часть решения проблемы на сайте кодирования leetcode.

Извините за чистые объяснения лучше. getNumber возвращает int. int getNumber (vector & theList, int number)

1 Ответ

0 голосов
/ 07 марта 2019

Что вы, вероятно, хотите сделать, это vector::insert(iterator position, const value_type& val), чтобы вставить val перед position в answer.

Таким образом, вы должны сообщить компилятору, что на самом деле делает getNumber и как преобразовать его int в iterator.Это может быть так же просто, как answer.begin() + getNumber(answer, nums[i]), но может быть лучше изменить getNumber для непосредственного возврата iterator.

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