2017-09-28 5 views
0

따라서 함수의 목적은 1과 제공된 정수 (포함) 사이의 배열에 홀수를 더하는 것입니다. 간단한 작업처럼 보이지만 실제 배열에 정수를 성공적으로 추가 할 수는 없습니다.Push_back 홀수

void populate(std::vector<int> ary, int a) 
{ 
    for (int i = 1; i <= a; i++) 
    { 
     if (i % 2 != 0) 
     { 

      ary.push_back(i); 
     } 

    } 
} 

함수 자체가 const가 아니므로 배열에 값을 성공적으로 추가해서는 안됩니까?

편집 : 이것은 모두 메인에서 이루어 지므로 여기에 있습니다.

int main() 
{ 
    std::vector<int> loli(100); 

    populate(loli, 31); 


    for (int value : loli) 
    { 

     std::cout << value << " "; 
     system("pause"); 
    } 
} 

EDIT 2 : 대신 return 문을 추가하려고했지만 결과는 0입니다.

std::vector<int> populate(std::vector<int> ary, int a) 
{ 
    for (int i = 1; i <= a; i++) 
    { 
     if (i % 2 != 0) 
     { 

      ary.push_back(i); 
     } 

    } 
    return ary; 
} 



int main() 
{ 

    std::vector<int> loli(100); 




    for (int value : populate(loli, 31)) 
    { 

     std::cout << value << " "; 
     system("pause"); 
    } 



} 

답변

1

함수는 for 루프 다음에 최종 배열을 반환하거나 배열을 함수에 대한 포인터로 전달해야합니다. \t { \t \t 경우 (I % 2

+1

STD : 벡터 채우기 ( 진 표준 : 벡터는 INT a) {위한 \t (나는 ++; I <= A I = 1 INT)! = 0) { \t \t \t \t \t \t \t \t ary.push_back (I); \t \t \t \t} \t} \t 창 (진); } 이 마음에 드십니까? – Granzo

+0

예. return 문이 없으면 함수는 아무 것도 반환하지 않고 함수를 호출하면 아무 것도 수행하지 않습니다. 또한 함수를 호출 할 때 반환 된 값을 변수 – Heapify

+0

에 저장해야합니다. 어떤 이유로 든 작동하지 않습니다. – Granzo