所以我在向量上做这个问题,我必须接受输入然后反转所有元素
int main() {
int i,n,a;
cin >> n;
vector<int> arr(n);
for(i=0;i<n;i++){
cin >> a;
arr.push_back(a);
}
sort(arr.begin(),arr.end());
for(i=0;i<n;i++){
cout << arr[i] << " ";
}
return 0;
}
我写了这段代码,在这里我提到的大小是向量的n个,其中只推了n个元素。但是对于5个元素,输出结果为0 0 0 0 0。我猜这是因为向量已将其容量扩展到10,因此打印了最后5个明显为0的元素。为什么会发生这种情况?
vector<int> arr(n);
从头开始创建一个大小为n
的向量,所有元素都初始化为int{}
,也称为零。然后循环通过n
添加push_back
个其他元素。
vector<int> arr(n);