我在使用vector时候遇到的二逼问题

时间:2023-03-09 20:54:17
我在使用vector时候遇到的二逼问题

最近在练习使用STL中德各种容器,像vector,map,set之类的。

然后在使用vector的时候,无意间遇到了一个很二逼的问题。

主要是这样的,请看源码(C++):

//错误的写法:
#include "stdafx.h" #include<iostream>
#include<vector>
#include<algorithm> using namespace std; int main()
{
vector<int> MyVector; //这里是没有申明数量的,而下面用的下标访问,会出现错误
for(int i=0;i<10;i++){
MyVector[i]=i; //这里的访问方式不对。
}
cout<<MyVector.size()<<endl;
cout<<MyVector.empty()<<endl;
MyVector.clear();
cout<<MyVector.empty();
int a=0;
cin>>a;
return 0;
} //改进的方法一
#include<iostream>
#include<vector>
#include<algorithm> using namespace std; int main()
{
vector<int> MyVector(10); //申明的时候把向量的容量申明
for(int i=0;i<10;i++){
MyVector[i]=i;
}
cout<<MyVector.size()<<endl;
cout<<MyVector.empty()<<endl;
MyVector.clear();
cout<<MyVector.empty();
int a=0;
cin>>a;
return 0;
} //改进的方法二 #include<iostream>
#include<vector>
#include<algorithm> using namespace std; int main()
{
vector<int> MyVector; //申明的时候不申明向量的容量
for(int i=0;i<10;i++){
MyVector.push_back(i); //赋值的时候用push_back方法,从后插入。
}
cout<<MyVector.size()<<endl;
cout<<MyVector.empty()<<endl;
MyVector.clear();
cout<<MyVector.empty();
int a=0;
cin>>a;
return 0;
}

一些细节的地方说明,请看源码中的注释,谢谢!