我有这个初步代码:
#include "std_lib_facilities_4.h"
void numbers()
{
vector<int> first(9);
for (int i = 0; i <= 9; ++i)
{
cout << i << endl;
first.push_back(i);
}
for (int j = 0; j <= 9; ++j)
cout << first[j];
}
int main()
{
numbers();
}
Run Code Online (Sandbox Code Playgroud)
当我打印每个元素时,我希望得到1号,2号,3号,4号,5号,6号,7号,8号和9号打印输出.相反,我得到了这个:
0
1
2
3
4
5
6
7
8
9
0000000000
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
你用9个空值初始化向量(0),然后推回10个新值(第一个是0),产生一个19个元素的向量,前10个都是0,这就是first(9)创造的9个元素的向量.
而不是push_back,只需将元素设置为新值:
for (int i = 0; i <= 9; ++i)
first[i] = i;
Run Code Online (Sandbox Code Playgroud)