2016-11-18 6 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을 삽입하기 만하면 삽입 할 값이 없습니다. 이게 왜 그렇게?0을 삽입하는 벡터 push_back

답변

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