初識標準庫型別vector

2021-07-28 09:51:53 字數 4093 閱讀 1588

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...