下面一段C++代码错误在什么地方?

初学者 谁能告诉我啊 报错说内存超出范围了

 #include<iostream>
#include<string>
#include<vector>

int main()
{
    using namespace std;
    vector<int> number;
    vector<int> number_last;
    number_last[0] = 1;
    for (int i = 1; number[i] != 0; i++)
    {
        cout << "Enter your number: ";
        cin >> number[i - 1];
        cin.get();
        number_last[i] = number_last[i - 1] * number[i];
    }
    cin.get();
    getchar();

}

#include
#include
#include

using namespace std;

int main()
{
vector number;
vector number_last;

    int a,b,i=0;
    a=1;
    b=2;
    number_last.push_back(a);
    number_last.push_back(b);
    cout<<number_last[0]<<endl;
    cout<<number_last[1]<<endl;

    do
    {
            cout << "Enter your number: "<<endl;
            cin>>b;
            cin.get();
            number.push_back(b);

            //cout<<b<<endl;
            //cout<<number[i]<<endl;
    }while(number[i++]!=0);

    return 0;

}

你的vector都没有插入数据分配空间,不能通过下标访问

大哥你没有对vector对象插入数据,初始大小为0,就对它进行访问,这不明显越界吗