2016-12-01 2 views
1

Я пытаюсь передать вектор в функцию в качестве argument/parameter, чтобы print/return содержимое этого list/array/vector, но когда я компиляции кода я обращенную эту ошибку:C++ Ошибка: не жизнеспособны преобразование возвращаемого значения типа

enter image description here

вот код:

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

int printVector(vector<int> vec_name){ 
    return copy(vec_name.begin(), vec_name.end(), ostream_iterator<int>(cout," ")); // returning contents of the array/vector 
} 

int main(){ 
    vector<int> array; 

    for(int i=0;i<=10;i++){ 
    array.push_back(i); // inserting values to the array 
    } 

    printVector(array); // Printing the vector array 

} 
+1

http://en.cppreference.com/w/cpp/algorithm/copy –

+1

если вы хотите его код, чтобы просто работать это изменить тип возврата int на printVector() в auto. если вы просто хотите напечатать значения в векторе, не используйте копию, прокрутите вектор и напечатайте каждое значение. – DanielCollier

+1

Thanks alot @DanielCollier –

ответ

1

ПРОБЛЕМА РЕШИТЬ:

используется для контура для того, чтобы напечатать значение каждого из вектора:

void printVector(vector<int> &vec_name){ 
    for(int i=0; i<vec_name.size(); i++){ 
    cout << vec_name[i] << " "; 
    } 

} 
1
void printVector(vector<int> const & vec_name) 
{ 
    for(size_t i = 0; i<vec_name.size(); i++){ 
    cout << vec_name[i] << " "; 
    } 
    cout << "\n"; 
} 
+1

Зачем добавлять const? я просто изменил int с void и удалил оператор return, и он работает –

+2

const в имени параметра, т. е. (вектор const и vector) означает, что функция не может изменять содержимое вектора, оно может читать только из него. const в имени функции i.e printVector (...) const означает, что функция не может изменять какие-либо переменные-члены внутри класса. – DanielCollier

+2

В этой ситуации это не полезно, но. при работе с большей базой кода это хорошая привычка. – DanielCollier

Смежные вопросы