为什么我的矢量打印出所有零?

Unw*_*ast -1 c++ vector

我有这个初步代码:

#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)

我究竟做错了什么?

mea*_*gar 5

你用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)