2017-09-28 32 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,所以不應該爲數組添加值?

編輯:這一切都在一個主要完成,所以它在這裏。編輯2:我試着添加一個返回語句,但我仍然得到結果爲零。

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循環之後返回最後一個數組,或者你應該傳遞數組作爲函數的指針。

+1

的std ::矢量填入(標準::矢量進制,INT A) { \t對(INT I = 1;我<= A;我++) \t { \t \t如果(ⅰ%2! = 0) \t \t { \t \t \t \t \t \t ary.push_back(ⅰ); \t \t} \t \t \t } \t回報(進制); } 是這樣的? – Granzo

+0

是的。沒有return語句,你的函數將不會返回任何東西,當你調用函數時,它不會執行任何操作。另外,當你調用這個函數時,你應該將返回的值保存在一個變量中 – Heapify

+0

由於某種原因,它仍然不起作用。 – Granzo