第九篇:順序容器及其常用函式

穆晨發表於2017-01-26

前言

       容器是指容納特定型別物件的集合。順序容器則是指該容器根據位置訪問儲存在其中的物件。Vector,List,Deque是三種常見的容器,本文將歸納這三種容器常用的函式,以備日後查閱。

描述符說明

       在以下函式解釋中,C 表示容器型別名,T表示容器的元素型別,c 表示待建立的/待處理的容器物件,其它描述符則在文中具體位置說明。

一 容器定義函式

       1. C<T> c

       建立一個空的容器 c

       2. C c( c2 )

       用 容器c2 建立 容器c

       3. C c( b, e )

       用 迭代器 b 和 e 之間的元素建立容器 c。

       下函式4,5僅用於順序容器。

       4. C c( n, t )

       建立容器 c 並將 c 初始化為一個具有 n 個元素 t 的容器。

       5. C c( n )

       建立容器 c 並將 c 初始化為一個具有 n 個 值初始化元素的容器。

       說明:建立容器物件必須要滿足兩個條件:

              1. 元素型別必須支援賦值運算

              2. 元素型別的物件必須可以複製

二 獲取迭代器函式

       1. c.begin()

       返回一個指向容器 c 第一個元素的迭代器

       2. c.end()

       返回一個指向容器 c 最後一個元素的下一個元素的迭代器

三 容器大小函式

       1. c.size()

       返回容器 c 中元素的個數

       2. c.empty()

       返回容器 c 中元素是否為 0 的布林值

       3. c.resize( n )

       調整容器 c 的長度大小,使其能容納 n 個元素。若 n < c.size() 則刪除多餘元素,否則對新元素進行值初始化。

       4. c.resize( n, t )

       調整容器 c 的長度大小,使其能容納 n 個元素。若 n < c.size() 則刪除多餘元素,否則將新元素初始化為元素 t。

四 增加元素函式

       1. c.push_back( t )

       在容器 c 之後插入元素 t

       2. c.push_front( t )

       在容器 c 最前端插入元素 t

       PS:該函式僅適用於 list 和 deque 容器型別

       3. c.insert( p, t )

       在迭代器 p 之前插入元素 t ,返回指向新插入元素的迭代器。

       4. c.insert( p, n, t )

       在迭代器 p 之前插入 n 個元素 t

       5. c.insert( p, b, e )

       在迭代器 p 之前插入迭代器 p 和 e 之間的元素

五 刪除元素函式

       1. c.erase( p )

       刪除迭代器 p 所指向的元素,返回指向被刪除元素的後一個元素的迭代器。

       2. c.erase( b, e )

       刪除迭代器 b 和 e 之間的所有元素,返回指向被刪除元素段的後一個元素的迭代器。

       3. c.clear()

       刪除容器 c 的所有元素

       4. c. pop_back()

       刪除容器 c 的最後一個元素

       5. c.pop_front()

       刪除容器 c 的第一個元素

       PS:僅用於 list 和 deque 函式

六 賦值函式

       1. c1 = c2

       刪除容器 c1 中的所有元素,再將容器 c2 的值拷貝進去。

       2. c1.swap( c2 )

       將容器 c1 和 c2 的內容交換

       3. c.assign( b, e )

       重置容器 c,將迭代器 b 和 e 之間的元素複製進去。

       4. c.assign( n, t )

       重置容器 c,將 c 的元素置為 n 個元素 t。

相關文章