2016-11-18 23 views
-4
int main() 
{ 

    long int n; 
    long int k; 
    long int q; 
    long int o; 
    long int temp; 

    cin >> n >> k >> q; 
    vector<int> a(n); 
    vector<int> b(n); 
    for(int a_i = 0;a_i < n;a_i++){ 
     cin >> a[a_i]; 
    } 

    for(long int j=k;j>0;j--) { 
     b.push_back (a[n-j]);   
    } 

    for(long int r = 0;r<n-k;r++) 
     b.push_back(4);  

    for(long int a0 = 0; a0 < q; a0++){ 
     long int m; 
     cin >> m; 
     cout<<b[m]<<endl; 
    } 
    return 0; 
} 

質問:このコードでは、push_backはベクトル "b"に0を挿入するだけで、入れようとする値はありません。なぜこれはそうですか?ベクトルpush_back 0だけを挿入する

答えて

0

あなたは、どの値をコードに渡しているのか、どんな出力を得ているのかわからないという意味で、あなたの質問は完全ではありません。しかし、私は、bvector<int> b(n)で構成すると、サイズがnですべて0であるベクトルを構築することに言及する必要があります。その後push_backはそれに要素を追加しますが、最初n要素のいずれかを印刷する場合、それらはすべてあなたが次に何をすることができ

vector<int> a; 
a.reserve(n); 
vector<int> b; 
b.reserve(n); 
+0

vector<int> a(n); vector<int> b(n); 

を交換する必要が0

になりますインデックス0から新しい要素をプッシュするために行われましたか? –

+1

@grigor彼の問題に必要なコードを追加しました。私の行動に気を付けないでください – Danh

関連する問題