vector的高階用法

2021-07-01 21:12:24 字數 2021 閱讀 5783

這裡主要介紹vector的元素訪問方法,迭代器相關函式,元素查詢和搜尋,字串排序,插入元素,刪除元素,交換元素等內容。

1、元素訪問方法

按c和c++的慣例,第乙個元素的下標為0;最後乙個元素的索引下標為size()-1,即第n個元素的下標為n-1。可以直接訪問vector型容器中元素的操作方法主要包括:at(),,front(),back()。

其中,c.at(index)函式返回值是引用。既可以取出元素值,也可以對元素賦值;c[index]同樣返回值是引用型別。既可以取出元素,也可以對元素賦值;必須確定下標有效。c.front()返回第乙個元素;c.back()返回最後乙個元素。

2、迭代器相關函式

vector類模板提供部分常規函式來獲取迭代器。迭代器是隨機訪問迭代器,通過迭代器甚至可以操作所有演算法。和迭代器相關的函式主要包括:begin(),end(),rbegin(),rend()。其中begin()指向第一元素;end()指向最後元素的下乙個位置;rbegin()指向逆向迭代的第一元素;rend()指向逆向迭代的最後元素的下乙個位置。函式begin()和end()返回值型別均為迭代器型別;函式rbegin()和rend()返回值型別為逆向迭代器。

3、元素查詢和搜尋

查詢vector型容器中的元素,可以使用stl的通用演算法find()。有條件搜尋先關元素可以使用演算法find_if()。這兩個演算法函式均可以使用迭代器,兩個迭代器引數決定了搜尋和查詢的範圍。函式返回值均為迭代器型別。

用法:// vector__.cpp : 定義控制台應用程式的入口點。

//#include "stdafx.h"

#include #include #include #include using namespace std;

void print(const int &temp)

string name;

double score;

bool operator <(const student& m) const

bool score_sort(const student &m, const student &n)

void print(student &s)

int _tmain(int argc, _tchar* argv)

{ vectorvect;

original(vect);

cout<<"----before sorted.----"<

6.插入元素

在現有的vector型容器中插入或增加乙個新的元素,可以使用push_back()函式將元素加入至vector型物件(容器)的末尾。還可以使用insert()函式將物件插入至vector中任意位置,即insert()函式可以實現在迭代器中指向位置插入元素。insert()函式返回值為迭代器,指向剛插入的元素。還可以在迭代器指定位置插入多個連續的不同元素,還可以插入多個值相同元素。

7.刪除元素

在定義vector型容器時,需要初始化其元素。並且定義vector時,同時使用另外stl容器中的區間資料來初始化。該stl容器不必是vector型物件,只要元素的型別相同即可。

刪除容器中的元素,可以使用3個成員函式:pop_back()、erase()、clear()。還可以使用演算法庫中的演算法remove()來實現。

pop_back()函式刪除最後乙個元素,函式erase()可以刪除由迭代器指定的元素,也可以刪除區間範圍的元素。clear()函式實現刪除向量vector的所有元素,相當於erase(begin(),end())。

8.物件交換

vector類模板還提供了成員函式swap(),用於兩個vector型容器之間的元素交換。如果兩個參與交換的vector型別相同,物件交換會瞬間完成。如果兩個參與交換的vector物件型別不同,在實現物件交換的過程中,需要執行非常複雜的操作。

9.vector類

c++標準程式庫專門針對元素類別為bool的vector設計了特殊版本,目的是獲取優化的vector。其所占用的記憶體空間遠小於一般的vector模版例項化的bool型別向量(容器)。普通的vector類模板會分配1個byte空間,而vector只占用1個bit儲存單個元素。所佔記憶體空間為1/8。

容器vector 的用法

vector 是向量型別,它可以容納許多態別的資料,如若干個整數,所以稱其為容器。vector 是c stl的乙個重要成員,使用它時需要包含標頭檔案 include 一 vector 的初始化 可以有五種方式,舉例說明如下 1 vectora 10 定義了10個整型元素的向量 尖括號中為元素型別名,...

vector的用法小結

include include using namespace std int main 令i依次為ivec中的每乙個元素,並顯示 for auto i ivec cout i cout endl 新增元素到ivec尾端 for int i 11 i 20 i ivec.push back i 令i...

vector的基本用法

vector是c 標準模板庫中的部分內容,它是乙個多功能的,能夠操作多種資料結構和演算法的模板類和函式庫。vector之所以被認為是乙個容器,是因為它能夠像容器一樣存放各種型別的物件,簡單地說,vector是乙個能夠存放任意型別的動態陣列,能夠增加和壓縮資料。標頭檔案 include 宣告 乙個in...