Нет подходящей функции для вызова? - PullRequest
0 голосов
/ 04 декабря 2011

Не могу понять, почему я получаю эту ошибку:

error: no matching function for call to ‘write_vector(int&)’
    template <typename T>
    void write_vector(const vector<T>& V)
    {
       cout << "The numbers in the vector are: " << endl;
      for(int i=0; i < V.size(); i++)
        cout << V[i] << " ";
    }

    int main()
    {
      int input;
      vector<int> V;
      cout << "Enter your numbers to be evaluated: " << endl;
      cin >> input;
      V.push_back(input);
      write_vector(input);
      return 0;
    }

Ответы [ 3 ]

1 голос
/ 04 декабря 2011

Запись

write_vector(V); //V is std::vector<int>

вместо

write_vector(input); //input is int

Пожалуйста, попытайтесь понять сообщение об ошибке.Это дает большую подсказку о том, что пошло не так в вашем коде.

Кроме того, кажется, вы написали using namespace std где-то в своем коде.Не делай этого.Сотри эту строку.А затем используйте std::vector там, где вы используете vector.Это лучший стиль кодирования, который может избежать многих проблем, вызванных using namespace std, особенно в больших проектах.

0 голосов
/ 04 декабря 2011

Вы вызываете функцию write_vector, используя неверные параметры. В коде, который вы только что опубликовали, вы вызываете процедуру, используя 'input' в качестве параметра, но 'input' - это тип 'int', а не 'vector'.

0 голосов
/ 04 декабря 2011

Вы передаете свою входную переменную в функцию, и ваша шаблонная функция ожидает вектор.Попробуйте перейти в V insted

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