這裡主要介紹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...