2014-09-06 37 views
-1
#include <iostream> 
#include <vector> 
using namespace std; 

int main() 
{ 
    int testcases = 0; 
    int length; 
    int item =0; 

    std::vector<int> v; 

    cin>>testcases; 
    for (int i=0; i<testcases; ++i) 
    { 
     cin>>length; 

     v.resize(length); 
     for (int j=0; j<length; ++j) 
     { 

      cin >> item; 
      cout << "item entered:" << item << endl; 
      v.push_back(item); 

     } 

     cout << v[0] << " "; 
     cout << *v.begin() << " "; 

     int loop=0; 
     cin>>loop; 

     int range1=0, range2=0; 


     int result = 0; 
     for (int k=0; k<loop; ++k) 
     { 
      result = 0; 
      cin>>range1; 
      cin>>range2; 
      cout << v[range1]<< " "<< v[range2] <<endl; 
      while (range1<=range2) 
      { 
       result = result^v[range1]; 
       ++range1; 
      } 
      cout << result << endl; 
     } 

    } 


    return 0; 
} 

为什么v [0]和* v.begin()我没有通过一些0作为输入值阵列为什么v [0]和* v.begin()打印0,即使我没有通过某个0作为数组的输入值

回答

2

这是因为push_back调用添加到载体,它是由resize调用创建项目后的年底

如果要在向量中设置特定条目,则需要在输入循环中使用数组索引语法。

+0

谢谢。它解决了这个问题。我从最后30分钟卡在这里。 – 2014-09-06 08:53:52