我在使用vector時候遇到的二逼問題

最近在練習使用STL中德各類容器,像vector,map,set之類的。ios

而後在使用vector的時候,無心間遇到了一個很二逼的問題。spa

主要是這樣的,請看源碼(C++):code

//錯誤的寫法:
#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;
}



一些細節的地方說明,請看源碼中的註釋,謝謝!
相關文章
相關標籤/搜索