向量的 C++ 输出元素不是预期的
C++ output elements of a vector not expected
我正在练习 vector 和 ranged for 循环,我的代码:
#include <iostream>
#include <vector>
using namespace std;
int main(){
int size,element;
cout<<"enter vector size: ";
cin>>size;
vector<int>v(size);
for(int i=0; i<size; i++){
cout<<i<<"\t";
cin>>element;
v.push_back(element);
}
for(int p : v) cout<<p<<" ";
}
我输入了 3,然后是 1、2、3,但输出是“0 0 0 1 2 3”。你能解释一下0是从哪里来的吗?非常感谢!
vector<int>v(size);
创建一个 size
零初始化元素的向量(在你的例子中是 3)。 push_back
然后将新元素添加到此向量的末尾,这解释了您获得的结果。
您可以为带有 reserve
的向量中的元素保留 space。如果您事先知道要添加多少元素,这会稍微加快速度。
vector<int>v(size);
这将创建一个大小等于大小变量的向量。现在,如果您执行 push_back ,它将创建一个新向量并使用 size+1 并将元素添加到其中。
而不是在 for 循环中做 cin>>v[i];
我正在练习 vector 和 ranged for 循环,我的代码:
#include <iostream>
#include <vector>
using namespace std;
int main(){
int size,element;
cout<<"enter vector size: ";
cin>>size;
vector<int>v(size);
for(int i=0; i<size; i++){
cout<<i<<"\t";
cin>>element;
v.push_back(element);
}
for(int p : v) cout<<p<<" ";
}
我输入了 3,然后是 1、2、3,但输出是“0 0 0 1 2 3”。你能解释一下0是从哪里来的吗?非常感谢!
vector<int>v(size);
创建一个 size
零初始化元素的向量(在你的例子中是 3)。 push_back
然后将新元素添加到此向量的末尾,这解释了您获得的结果。
您可以为带有 reserve
的向量中的元素保留 space。如果您事先知道要添加多少元素,这会稍微加快速度。
vector<int>v(size);
这将创建一个大小等于大小变量的向量。现在,如果您执行 push_back ,它将创建一个新向量并使用 size+1 并将元素添加到其中。
而不是在 for 循环中做 cin>>v[i];