【发布时间】:2020-04-05 13:57:16
【问题描述】:
所以我在向量上做这个问题,我必须接受输入然后反转所有元素
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。为什么会发生这种情况?
【问题讨论】:
-
因为你使用了
arr.push_back(a);而不是arr[i] = a;