2013-04-12 64 views
0

到目前爲止這是我的代碼我想要做的是說用戶輸入1 2 3,然後按下-1,他或她將被要求輸入另一組數字說9 8 7,我的程序所要做的就是將它們顯示爲1 2 3 9 8 7,而是像這樣顯示它們6 6 6 6 6 6,基本上它會統計出有多少個數字,並顯示該數字的數量。所以任何人都可以在這裏幫助我,我該如何讓它顯示兩組數字的組合?向量追加

#include <iostream> 

#include <vector> 

using namespace std; 

vector<int> append(vector<int> a, vector<int> b) 
{ 
    int n = a.size(); 
    int m = b.size(); 
    vector<int> c(n + m); 
    int i; 

    for (i = 0; i < n; i++) 
     c[i] = a[i]; 

    for (i = 0; i < m; i++) 
     c[n + i] = b[i]; 

    return c; 
} 

int main() 
{ 
    cout << "Please enter a set of numbers, insert -1 when done.\n"; 
    vector<int>a; 
    bool more = true; 
    while (more) 
    { 
     int n; 
     cin >> n; 
     if (n == -1) 
      more = false; 
     else 
      a.push_back(n); 
    } 


    cout << "Please enter another set of numbers, insert -1 when done.\n"; 
    vector<int>b; 
    more = true; 
    while (more) 
    { 
     int m; 
     cin >> m; 
     if (m == -1) 
      more = false; 
     else 
      b.push_back(m); 
    } 

    vector<int>d = append(a,b); 
    { 

     int i; 
     for (i= 0; i < d.size(); i++) 

     cout << d.size() << "\n"; 
    } 
} 
+2

要打印'd.size()'。嘗試'cout << d [i] <<「\ n」;'結尾。 – Detheroc

+0

您在此處打印d.size()的大小。如果你想打印的內容,那麼你應該有這樣的事情cout << d [i] << endl; – Raghuram

+1

與問題無關,但請注意,如果效率非常低,則您的追加函數會創建太多的輸入向量副本。 – juanchopanza

回答

3

這是因爲在你打印的大小,而不是價值:

cout << d.size() << "\n"; 

應該是:

cout << d[i] << "\n"; 
+0

沒有工作。 –

+0

它是如何工作的?發生了什麼?錯誤? – Jace

+0

@WilliamDuron我很困惑,它沒有奏效。你重新編譯了你的代碼嗎? – Jace

0

這是因爲當你打印出來,你正在打印d.size而不是d[i]

cout << d.size() << "\n"; 

將需要是:

cout << d[i] << endl; 
+0

它仍然顯示相同。 –

+0

@WilliamDuron所以它工作? –