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

来源:互联网 发布:sql怎么调用存储过程 编辑:程序博客网 时间:2024/04/30 02:59

最近在练习使用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;}

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





原创粉丝点击