C 中vector的使用總結之美

2021-10-02 16:44:35 字數 4134 閱讀 1686

目錄vector簡單說明

迭代器的使用

迭代器的使用示例

vector的成員函式以及作用

vector的示例用法

vector也是乙個容器,並且是個順序容器。順序容器有可變長陣列vector雙向鍊錶list雙端佇列deque

順序容器的定義,是因為容器元素的位置和他們的值大小無關,也就是說順序容器不排序。

所有的容器都有以下兩個方法:

int size() : 返回容器物件中元素的個數

bool empty(): 判斷容器物件是否為空

順序容器還有以下成員函式:

begin():返回指向容器中第乙個元素的迭代器。

end():返回指向容器中最後乙個元素後面的位置的迭代器。

rbegin():返回指向容器中最後乙個元素的反向迭代器。

rend():返回指向容器中第乙個元素前面的位置的反向迭代器。

erase(...):從容器中刪除!(

乙個或幾個元素。該函式引數較複雜,此處省略。

clear():從容器中刪除所有元素。

front():返回容器中第乙個元素的引用。

back():返回容器中最後乙個元素的引用。

push_back():在容器末尾增加新元素。

pop_back():刪除容器末尾的元素。

insert(...):插入乙個或多個元素。該函式引數較複雜,此處省略。

迭代器是乙個變數,迭代器可以指向容器中的元素,和指標類似。

迭代器的定義方式有以下幾種:

正向迭代器

容器類名::iterator 迭代器名;

反向迭代器

容器類名::reverse_iterator 迭代器名;

常量正向迭代器

容器類名::const_iterator 迭代器名;

常量反向迭代器

容器類名::const_reverse_iterator 迭代器名;

vectora;

vector::iterator pr;

for(int i = 0; i < 3; i++)

cout << a.size()<::reverse_iterator prr>

for(prr = a.rbegin(); prr != a.rend(); prr++)

cout << endl;

vector()                        無參建構函式,將容器初始化為空

vector(int n) 將容器初始化為有 n 個元素

vector(int n, const t & val) 假定元素的型別是 t,此建構函式將容器初始化為有 n 個元素,每 個元素的值都是 val

vector(iterator first, iterator last) first 和 last 可以是其他容器的迭代器。一般來說,本建構函式初始化的結果就是將 vector 容器的內容變成與其他容器上的區間 [first, last) —致

void clear() 刪除所有元素

bool empty() 判斷容器是否為空

void pop_back() 刪除容器末尾的元素

void push_back( const t & val) 將 val 新增到容器末尾

int size() 返回容器中元素的個數

t & front() 返回容器中第乙個元素的引用

t & back() 返回容器中最後乙個元素的引用

iterator insert(iterator i, const t & val) 將 val 插入迭代器 i 指向的位置,返回 i

iterator insert( iterator i, iterator first, iterator last) 將其他容器上的區間 [first, last) 中的元素插入迭代器 i 指向的位置

iterator erase(iterator i) 刪除迭代器 i 指向的元素,返回值是被刪元素後面的元素的迭代器

iterator erase(iterator first, iterator last) 刪除容器中的區間 [first, last)

void swap( vector & v) 將容器自身的內容和另乙個同型別的容器 v 互換

#include#includeint main();

vectorv(a,a+4); //將陣列a的內容寫入v

cout << "1) v.size = " << v.end() - v.begin() << endl;

cout << "2) " << "use iterator ";

vector::iterator p ;

for(p = v.begin(); p != v.end();p++)

cout << *p << " ";

cout << endl;

//刪除第二個元素

v.erase(v.begin() + 1);

cout << "3) " << "after delete second element ";

for(p = v.begin(); p != v.end();p++)

cout << *p << " ";

cout << endl;

//在第二個元素後加入13

v.insert(v.begin()+1,13);

cout << "4) " << "insert 13 after second element ";

for(p = v.begin(); p != v.end();p++)

cout << *p << " ";

cout << endl;

//使用vector的其他建構函式

vectorpa(5,10);

cout << "5) " << "use another struct function ";

for(p = pa.begin(); p != pa.end();p++)

cout << *p << " ";

cout << endl;

//將v插在pa開頭

pa.insert(pa.begin(),v.begin(),v.end());

cout << "6) " << "insert all of v into pa ";

for(p = pa.begin(); p != pa.end();p++)

cout << *p << " ";

cout << endl;

//刪除第二個到第四個之間的元素

pa.erase(pa.begin() + 1,pa.begin()+3);

cout << "7) " << "after delete elements that locate at 2th and 4th ";

for(p = pa.begin(); p != pa.end();p++)

cout << *p << " ";

cout << endl;

return 0;

}

輸出結果如下所示:

C 中vector的使用總結

vector也是乙個容器,並且是個順序容器。順序容器有可變長陣列vector 雙向鍊錶list 雙端佇列deque。順序容器的定義,是因為容器元素的位置和他們的值大小無關,也就是說順序容器不排序。所有的容器都有以下兩個方法 int size 返回容器物件中元素的個數 bool empty 判斷容器物...

C 中vector的使用

vector是c 標準模板庫中的容器,能夠操作多種資料結構。1.標頭檔案 include vector屬於std命名域 2.建立vector物件 vectorivec 3.基本操作 1 尾部插入數字 ivec.push back ivec 2 使用下標訪問元素,cout 3 使用迭代器訪問元素 ve...

C 中assert 函式用法總結之美

c 中assert 函式用法總結 assert巨集的原型定義在中,其作用是如果它的條件返回錯誤,則終止程式執行,原型定義 include voidassert intexpression assert的作用是現計算表示式 expression 如果其值為假 即為0 那麼它先向stderr列印一條出錯...