#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,即使我没有传递一些0作为数组的输入值
答案 0 :(得分:2)
这是因为push_back
次调用会添加到向量的 end ,它位于resize
调用创建的项目之后。
如果要在向量中设置特定条目,则需要在输入循环中使用数组索引语法。