程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> C++入門學習——標准模板庫之vector

C++入門學習——標准模板庫之vector

編輯:C++入門知識

C++入門學習——標准模板庫之vector


vector(向量容器),是 C++ 中十分有用一個容器。vector 之所以被認為是一個容器,是因為它能夠像容器一樣存放各種類型的對象,簡單地說,vector 是一個能夠存放任意類型(類型可以是int, double, string, 還可以是類)的動態數組,能夠增加和壓縮數據。

 

使用 vector 之前,必須包含相應的頭文件,vector 屬於 std 命名域的,因此需要通過命名限定:

#include
using std::vector; //using namespace std;

 

vector 對象的定義和初始化

\

vector a; //創建一個int類型的空的vector對象,沒有任何元素
vector b(a); //b 是 a 的副本
vector str(10, mike); //10個str,每個的內容都是mike
vector c(10); //創建10個int類型vector對象,相當於c[10],每個元素的值默認為0

 

vector 對象常用操作

\

 

使用示例如下:

 

#include 
#include 

using std::vector;
using std::cout;
using std::endl;
//using namespace std;

int main( )
{
	vector a(10); //創建10個int類型vector對象,相當於c[10],每個元素的值為0
	
	//判斷 a 是否為空
	if( true == a.empty() ){ 
		cout << it is empty
;
	}else if(false == a.empty() ){ //結果不為空
		cout << it is not empty
;
	}
	
	//返回 a 中元素的個數。
	cout << size =  << a.size() << endl; // 結果為10
	
	// 在 a 的末尾增加一個值為 5 的元素。
	// 本來有10個元素,再添加一個,變為11個
	a.push_back(5);
	
	//下標操作元素,有11個元素,0~10
	//打印最後一個元素
	cout << a[a.size() -1] << endl; //結果為 5
	
	// 下標法,把所有元素的值打印出來
	// vector::size_type 可以當做 int 使用
	for(vector::size_type i = 0; i != a.size(); i++){
		cout << a[i] << , ;
	}
	cout << endl;
	
	cout << size before pop_back =  << a.size() << endl;
	a.pop_back(); //刪除容器最後位置處的元素
	cout << size after pop_back =  << a.size() << endl;
	
	// 下標法,給所有元素賦值
	for(vector::size_type i = 0; i != a.size(); i++){
		a[i] = 5;
	}
	
	cout << it is a:
;
	// 把 a 所有元素的值打印出來
	for(vector::size_type i = 0; i != a.size(); i++){
		cout << a.at(i) << , ;
	}
	cout << endl;
	
	vector b = a; //b是a的復制品
	
	cout << it is b:
;
	// 把 b 所有元素的值打印出來
	for(vector::size_type i = 0; i != a.size(); i++){
		cout << b[i] << , ;
	}
	cout << endl;
	
	a.clear(); //清除所有元素
	cout << size after clear =  << a.size() << endl;
	
	return 0;
}

 

運行結果如下:

\

 

迭代器操作 vector 對象

除了使用下標來訪問 vector 對象的元素外,標准庫還提供了另一種訪問元素的方法:使用迭代器(iterator) 。迭代器是一種檢查容器內元素並遍歷元素的數據類型。實際上,vector 對象相當於數組,而迭代器就相當於指針

 

每種容器類型都定義了自己的迭代器類型,如 vector:

vector::iterator iter;

 

\

 

使用示例如下:

 

#include 
#include 

using std::vector;
using std::cout;
using std::endl;
//using namespace std;

int main( )
{
	vector v(10, 5); //有10個元素,每個元素的值都是5
	
	//通過迭代器把所有元素的值打印出來
	vector::iterator it;
	for( it=v.begin(); it!=v.end(); it++){
		cout<< *it << , ;
	}
	cout << endl;
	
	//通過迭代器給所有元素賦值為1
	for( it=v.begin(); it!=v.end(); it++){
		*it = 1;
	}
	
	cout << endl;
	//通過迭代器把所有元素的值打印出來
	for( it=v.begin(); it!=v.end(); it++){
		cout<< *it << , ;
	}
	cout << endl;
	
	it = v.begin(); //返回指向容器最開始位置元素的指針(迭代器)
	//刪除指針it+1指向位置的元素,返回指向下一個元素位置的指針(迭代器)
	v.erase(it+1); 
	
	cout << endl << after erase:
;
	//通過迭代器把所有元素的值打印出來
	for( it=v.begin(); it!=v.end(); it++){
		cout<< *it << , ;
	}
	cout << endl;
	
	it = v.begin(); 
	//在位置it後插入3個5
	v.insert(it, 3, 5);
	
	cout << endl << after insert:
;
	//通過迭代器把所有元素的值打印出來
	for( it=v.begin(); it!=v.end(); it++){
		cout<< *it << , ;
	}
	cout << endl;
	
	return 0;
}

運行結果如下:

 

\

 

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved