先看这段代码,代码意思是想要将数据读入到容器中。
运行后报出一个容器内存越界的错误。
解析:这是因为没有初始化容器,所以容器的大小为0,一个没有空间的容器是不能通过下标去接受数值的。
改正:既然容器是因为没有初始化内存大小,我们不妨在定义容器的时候调用容器的构造函数,进行赋初值。
这样就能正常运行了 。
注意事项:
vector<int> v01;
v01.push_back(1);//只能这样赋值,不能用v01[0]=1;不存在内存空间
vector<int> v02(n);//等价于vector<int> v02(n,0);
v02[0]=1;//只能这样赋值,不能用v.push_back(1),因为此时的v02.push_back(1)是把1插入到v02[n]位置,但是v[n]越界了,实际上是无法插入的;
vector<int> v03(n,0);
v03[0]=1;//只能这样赋值,不能用v03.push_back(1);