目錄
一、順序和關聯容器共同支持的成員函數
二、vector
-
vector的構造
-
賦值操作
-
直接訪問向量元素
-
vector向量的常用操作
二、list
-
鏈表的構造(模板參數T是鏈表的數據類型)
-
鏈表賦值
-
鏈表存取
-
鏈表插入和刪除
-
鏈表的特殊操作
三、stack
主要操作
一、順序和關聯容器共同支持的成員函數
begin() 指向第一個元素
end() 指向最後一個元素
erase() 刪除容器中的一個或多個元素
rbegin() 指向按反順序的第一個元素
rend() 指向按反順序的末端位置
clear() 刪除容器中的所有元素
二、vector
向量容器,類似於動態數組,比數組靈活
- vector的構造
1 1vector c //產生一個空vector,其中沒有任何元素
2 vector c1(c2) //產生同型c2向量的一個複本(c2所有元素被複制給c1)
3 vector c(n,elem) //產生大小爲n的向量c,且每個元素都是elem
4 vector c(beg,end) //產生一個向量,並用區間[beg,end]作爲元素的初值
- 賦值操作
1 c1=c2 //將向量c2的元素全部賦值給c1
2 c.assign(n,e) //複製n個元素e,賦值給向量c
3 c.assign(beg,end) //將區間[beg,end]內的元素賦值給c
4 c1.swap(c2) //將c1與c2向量互換
- 直接訪問向量元素
1 c.at[n] //返回下標n所標識的元素,若下標越界,返 回“out_of_range”
2 c[n] //返回下標n所標識的元素,不進行範圍檢查
3 c.front() //返回第一個元素
4 c.back() //返回最後一個元素
- vector向量的常用操作
1 c.insert(pos,e) //在pos位置插入e的副本,並返回新元素的位置
2 c.insert(pos,n,e) //在pos位置插入e的n個副本,不返回值
3 c.insert(pos,beg,end) //在pos位置插入區間[beg,end]內的所有元素
4 c.push_back(e) //在尾部插入元素e
5 c.push_back() //刪除最後一個元素
6 c.erase(pos) //刪除pos位置的元素
7 c.erase(beg,end) //刪除區間[beg,end]內的所有元素
8 c.clear() //刪除所有元素,清空容器
9 c.size() //返回向量c中的元素個數
10 c.resize(n) //將c重新設置爲大小爲n個元素的向量,如果n比原來的元素多,則多出的元素常被初始化爲0
上述成員函數參數中涉及的位置pos都與vector的迭代器有關,要操作這些成員函數,必須定義對應向量的迭代器,並通過迭代器訪問pos指向的向量元素
二、list
雙向鏈表,可以從頭到尾或從尾到頭訪問鏈表中的節點,節點可以是任意數據類型。鏈表中節點的訪問常常通過迭代器進行。
- 鏈表的構造(模板參數T是鏈表的數據類型)
1 list c //建立一個空鏈表c
2 list c1(c2) //建立與c2同型的鏈表c1(c2的每個元素都被複制)
3 list c(n) //建立具有n個元素的鏈表c,元素值由默認構造函數產生
4 list c(n,e) //建立n個元素的鏈表c,每個元素的值都是e
5 list c(beg, end) //建立鏈表c,並用[beg, end]區間內的元素作初始化
6 c.~list() //銷燬鏈表c,釋放內存
- 鏈表賦值
1 c1=c2 //將c2鏈表的全部元素賦值給c1鏈表
2 c1.assign(n,e) //將元素e拷貝n次到c1鏈表
3 c.assign(beg,end) //將區間[beg,end]的元素賦值給c
4 c1.swap(c2) //將鏈表c1和c2的全部元素互換
- 鏈表存取
1 c.front() //返回第一個元素,不檢查元素存在與否
2 c.back() //返回最後一個元素,不檢查元素存在與否
- 鏈表插入和刪除
1 c.insert(pos,e) //在pos位置插入元素e的副本,並返回新元素的位置
2 c.insert(pos,n,e) //在pos位置插入元素e的n個副本,沒有返回值
3 c.insert(pos, beg, end) //在pos位置插入區間[ bed, end]內的全部元素
4 c.push_back(e) //在尾部追加一個元素e的副本
5 c.pop_back(e) //刪除最後一個元素
6 c.push_front(e) //在表頭插入元素e的一個副本
7 c.pop_front() //刪除第一個元素
8 c.remove(val) //刪除值爲val的元素
9 c.remove_if(op) //刪除所有“造成op(e)結果爲true”的元素
10 c.erase(pos) //刪除pos指向的元素,返回下一元素的位置
11 c.erase(beg, end) //刪除區間[beg,end]內的元素,返回下一元素位置
12 c.resize(n) //將鏈表c的大小重新設置爲n
13 c.clear() //刪除鏈表所有元素,將整個容器置空
- 鏈表的特殊操作
1 c.unique() //刪除相鄰重複元素,只留一個
2 c.unique(op) //若存在若干相鄰且使op()操作爲true的元素,刪除重複,只留一個
3 c1.splice(pos, c2) //將c2內的所有元素轉換到c1內,pos之前
4 c1.splice(pos, c2, c2pos) //將c2鏈表的c2pos所指元素移到c1內的pos指向的位置
5 c1.splice(pos, c2, c2beg, c2end) //將c2內[c2beg, c2end]區間的所有元素轉換到c1 內pos之前
6 c.sort() //以operator<爲準則,對所有元素排序
7 c.sort(op) //以op()爲準則,對所有元素排序
8 c1.merge(c2) //c2合併到c1,若合併前有序則合後仍有序
9 c.reverse() //將所有元素反序
三、stack
堆棧是一種較簡單的容器,是一種受限制的向量,只允許在一端存取變量
LIFO(Last in first out)
主要操作
push() //將第一個元素加入stack內,加入的元素放在棧頂
top() //返回棧頂元素元素值
pop() //刪除棧頂元素
**關注我,帶你遨遊代碼世界!
私信回覆 “資料” 獲取更多**