vector
是同一種型別的物件的集合
,類似於陣列
,每個物件都有乙個對應的整數索引值。
它和 string 物件一樣,系統將負責管理與儲存元素相關的記憶體。
我們把 vector稱為容器,是因為它可以包含其他物件。乙個容器中的所有物件都必須是同一種型別的。
使用 vector 之前,必須包含相應的標頭檔案
#include
using
std::
vector
;
vector
是乙個類模板(class
template)。使用模板可以編寫乙個類定義或函式定義,而用於多個不同的資料型別。因此,我們可以定義儲存 string 物件的 vector,或儲存
int值的 vector,又或是儲存自定義的類型別物件(如sales_items 物件)的 vector。
vector
不是一種資料型別
,
而只是乙個
類模板,
可用來定義任意多種資料型別。vector
型別的每一種都指定了其儲存元素的型別
定義和初始化 vector物件
vectorv1;//vector 儲存型別為 t 物件。預設建構函式 v1 為空。
vectorv2(v1);//v2 是 v1 的乙個副本。
vectorv3(n,i);//v3
包含 n 個值為 i 的元素。
vectorv4(n);//v4 含有值初始化的元素的 n 個副本。
vectorv5;//v5包含了初始值個數的元素,每個元素被賦予相應的初始值
vector
物件的操作
v.size();//返回 v 中元素的個數。
v.empty();//如果 v 為空,則返回true
,否則返回 false。
v.push_back(t);//
在 v 的末尾增加乙個值為 t 的元素。
v[n];//返回 v 中位置為 n 的元素。
v1=v2;//
把 v1 的元素替換為 v2 中元素的副本。
v1==v2;//
如果 v1 與 v2 相等,則返回 true。
!=,<,<=,>,and>=
保持這些操作符慣有的含義。
/** vector 物件的操作
* 物件的 size
*jh 2017-3-13*/
#include
#include
usingnamespacestd;
intmain(void)
/*
* vector 物件的操作
* 向 vector 新增元素
* push_back 操作接受乙個元素值,並將它作為乙個新的元素新增到 vector物件的後面,
* 也就是「插入(push)」到 vector 物件的「後面(back)」:*
*jh 2017-3-13*/
#include
#include
#include
usingnamespacestd;
intmain(void)
/*
* vector 物件的操作
* vector 的下標操作
* ector 的下標操作符接受乙個值,並返回 vector 中該對應位置的元素。
* vector 元素的位置從 0 開始
*jh 2017-3-13*/
#include
#include
#include
usingnamespacestd;
intmain(void)
迭代器簡介
除了使用下標來訪問 vector
物件的元素外
,
標準庫還提供了另一種訪問元素的方法
:
使用迭代器
(
iterator
)
。迭代器是一種檢查容器內元素並遍歷元素的資料型別。
所有的標準庫容器都可以使用迭代器。
迭代器(iterator) 型別
每種容器型別都定義了自己的迭代器型別,如 vector:
vector::
iterator iter1;//iter1能讀寫vector的元素
string::iterator iter2;//iter2能讀寫string物件中的字元
vector::const_iterator iter3;//iter3只能讀元素,不能寫元素
string::const_iterator iter4;//iter4只能讀字元,不能寫字元
begin和end運算子
begin和end返回的具體型別由物件是否是常量決定,如果物件是常量,begin和end返回const_iterator;如果物件不是常量,返回iterator;
vectorv;
const vectorcv;
auto iter1 = v.begin();
auto iter2 = v.end();
/** 迭代器應用的程式示例
* jh 2017-3-13 */
#include
#include
#include
usingnamespacestd;
intmain(void)
標準庫vector型別
vector是同一種型別的物件的集合,每個物件都有乙個對應的整數索引值.和string物件一樣,標準庫將負責管理與儲存元素相關的記憶體.我們把vector稱為容器,是因為它可以包含其他物件.乙個容器中的所有物件都必須是同一種型別.使用vector之前,必須包含相應的標頭檔案.include usin...
標準庫型別vector
宣告 include using std vector 定義和初始化vector物件 vectorv1 vectorv2 v1 vectorv2 v1 vectorv3 n,val v3包含了n個重複的元素,每個元素的值都是val vectorv4 n v4包含了n個重複地執行了值初始化的物件 ve...
標準庫型別vector
文件 vector標準庫 include using std vector 預設初始化 vector a 定義乙個指定型別的空vector 列表初始化 vector b c 11新標準提供的另外一種初始化的方法,建立指定數量的元素 vector n,a 建立了n個型別為t的元素a 值初始化 vect...