C STL模板庫之vector的用法

2021-10-02 17:55:36 字數 3009 閱讀 8299

大部分容器都有的成員:

(x為容器型別,如vector;t為儲存在容器中的型別)型別值

x::value_type

t,元素型別

x::reference

t&x::const_reference

const t &

x::iterator

指向t的迭代器型別,行為與t*相似

x::const_iterator

指向const t的迭代器型別,行為與const t*相似

x::different_type

用於表示兩個迭代器之間距離的符號整型,如兩個指標的差

x::size_type

無符號整型size_type可以表示資料物件的長度、元素數目和下標

(以下是對**的一些變數說明:a的型別為vector型別;p是指向容器的有效const迭代器;q是可解除引用的有效const迭代器;[q1,q2]是有效的const迭代器區間;t是型別為x::value_type的左值或const右值;i和j是輸入迭代器;[i,j]是有效的區間;il是型別為initializer_list的物件,n是x::size_type型別的整數)

操作描述

begin()

返回乙個指向第乙個元素的迭代器

end()

返回乙個指向超尾的迭代器

cbegin()

返回乙個指向第乙個元素的const迭代器

cend()

返回乙個指向超尾的const迭代器

size()

返回元素數目

maxsize()

返回容器的最大可能長度

empty()

如果函式為空,返回true

swap()

交換兩個容器的內容

==如果兩個容器長度相同、包含元素相同且元素排列順序相同,返回true

pop_front()

刪除第乙個元素

pop_back()

刪除最後乙個元素

push_front(t)

將t拷貝插入到第乙個元素前面

push_back(t)

將t插入到end()前面

insert(p,t)

在p之前插入t的拷貝,並返回指向該拷貝的迭代器。t的預設值為t(),即在沒有顯式初始化時,用於t型別的值

insert(p,n,t)

在p之前插入t的n個拷貝

insert(p,i,j)

在p之前插入[i,j)區間內元素的拷貝

insert(p,il)

等價於insert(p,il.begin(),il.end())

erase(q)

刪除q指向的元素;返回乙個指向q後面的元素的迭代器

erase(q1,q2)

刪除區間[q1,q2]內的元素;返回乙個迭代器,該迭代器指向q2原來指向的元素

a.claer()

與erase(a.begin(),a.end())

a.front()

返回*a.begin()(第乙個元素)

還有一些有關容器元素的排序、替換等函式用法展示在**中:

示例**1

#include

#include

#include

using

namespace std;

void

print

(int i)

intmain()

; numberlist.

insert

(numberlist.

begin()

+3,3

,7);

numberlist.

insert

(numberlist.

begin()

+4,&a[0]

,&a[3]

);for_each

(numberlist.

begin()

, numberlist.

end(

), print )

; cout << endl;

//刪除向量容器中的第6個元素開始到第8元素,注意第九個元素的值不會被刪除

numberlist.

erase

(numberlist.

begin()

+5,numberlist.

begin()

+8);

for_each

(numberlist.

begin()

, numberlist.

end(

), print )

; cout << endl;

//刪除向量佇列的最後乙個元素

numberlist.

pop_back()

;for_each

(numberlist.

begin()

, numberlist.

end(

), print )

; cout << endl;

//遍歷向量容器

for(

int i=

0;isize()

;i++

)system

("pause");

return0;

}

示例**2:

#include

#include

#include

#include

#include

using

namespace std;

void

print

(int i)

bool

odd(

int i)

bool

even

(int i)

bool

comp

(const

int& i1,

const

int& i2)

intmain()

C STL標準模板庫之容器vector

vector是stl標準模板庫中的重要容器之一,可以通過設定來存放各種不同型別的資料,在stl中vector的實現方式是類模板,這些模板的引數允許我們指定容器中元素的資料型別,在結構上更加靈活,並且能夠避免重複編碼。在工程中建立乙個vector物件,在vector上右鍵轉到定義,可以找到vector...

c STL標準模板庫 vector容器

vector是stl標準模板庫中的乙個容器,可以容納不同的資料型別,並且資料可以自動向前增長,因此稱之為向量,vector是乙個序列式容器,裡面的底層實現是乙個順序表結構 1.資料自動初始化為0 2.可以動態增長長度 相比與陣列強大太多,可以用vector取代陣列 3.支援隨機訪問資料 4.對記憶體...

C STL之vector的使用

1.vector是表示可變大小陣列的序列容器。2.就像陣列一樣,vector也採用的連續儲存空間來儲存元素。也就是意味著可以採用下標對vector的元素進行訪問,和陣列一樣高效。但是又不像陣列,它的大小是可以動態改變的,而且它的大小會被容器自動處理。3.本質講,vector使用動態分配陣列來儲存它的...