大部分容器都有的成員:
(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
示例**2:#include
#include
#include
using
namespace std;
void
(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;
}
#include
#include
#include
#include
#include
using
namespace std;
void
(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使用動態分配陣列來儲存它的...