询问一个关于vector中capacity()和size()的问题
int main()
{
int inp =0;
vector<int> a;
cout<<"vec size: "<<a.size()<<endl;
cout<<"vec capacity: "<<a.capacity()<<endl;
while (inp != 10)
{
a.push_back(inp);
inp++;
}
cout<<"vec size: "<<a.size()<<endl;
cout<<"vec capacity: "<<a.capacity()<<endl;
a.reserve(20);
cout<<"After set reserve:"<<endl;
cout<<"vec size: "<<a.size()<<endl;
cout<<"vec capacity: "<<a.capacity()<<endl;
getchar();
getchar();
return 0;
}
结果为:
vec size: 0
vec capacity: 0
vec size: 10
vec capacity: 13
After set reserve:
vec size: 10
vec capacity: 20
但是如果我把while (inp != 10)改成while(cin>>inp, inp!=10) 然后输入1 3 4 10回车后结果为:
vec size: 0
vec capacity: 0
vec size: 3
vec capacity: 3
After set reserve:
vec size: 3
vec capacity: 20求各位牛人解释~~