我刚开始使用Vectors进行编码并编写了以下基本代码.
#include<iostream>
#include<vector>
using namespace std;
int main(){
vector<int> second(4,100);
cout<<second[0]<<endl;
cout<<second[1]<<endl;
cout<<second[2]<<endl;
cout<<second[3]<<endl;
cout<<second[4]<<endl;
cout<<second[5]<<endl;
cout<<second[6]<<endl;
cout<<second[7]<<endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我得到的输出如下
100
100
100
100
0
135145
0
0
RUN FINISHED; exit value 0; real time: 10ms; user: 0ms; system: 0ms
Run Code Online (Sandbox Code Playgroud)
为什么cout<<second[5]不同于其他指数的输出大于3.任何帮助表示赞赏.
vector<int> second(4,100);
Run Code Online (Sandbox Code Playgroud)
第一个参数告诉构造函数向量的大小,第二个参数是它应该用来填充它的值.
您已经创建了一个大小为4的向量,这意味着最后一个有效元素是second[3].除此之外的任何东西都会写入或读出不属于向量的内存中的边界,并调用未定义的行为.
您可以使用push_back方法在末尾安全地追加元素.