語法回顧 C STL 容器(一)

2021-09-06 05:19:30 字數 2353 閱讀 4037

【語法回顧】c++stl:容器(一) - atp_ -

2012-07-12 12:05

byatp_,

968閱讀,

0順序容器,它將單一型別元素聚集起來成為容器,然後根據位置來儲存和訪問這些元素,這就是順序容器。順序容器的元素排列次序與元素值無關,而是由元素新增到容器裡的次序決定的。

標準庫定義來三種順序容器:vector,list,deque(雙端佇列讀音」deck」)

三種順序容器的介面卡:stack,queue,priority_queue

相關標頭檔案

#include#include

#include#include#include

vectorivec; //預設建構函式

vectorc(c2); //建立容器 c2的副本

vectorc(n, t); //用n個值為t 的元素建立並初始化容器

listmylist(3, 「haha」); // 3個」haha」字串初始化list

listmylist1(mylist.begin(), mylist.end()); // 初始化為其他容器的一部分

容器的儲存類型別的物件,只有當其元素型別提供預設建構函式時,才可以使用容器

car類沒有預設建構函式,但是含有乙個int形參的建構函式?1

2

3

4

5

vectorcars;// 正確,沒有呼叫預設建構函式

vectorcars(10);//錯誤,該宣告的含義是定義並初始化10個car類的物件,呼叫了預設建構函式,但是car沒有提供

vectorcars(10, 1);//正確,呼叫來int形參的建構函式

vector< vector> lines; //必須用空格間隔開兩個》符號

*iter //返回迭代器iter所指向元素的引用

iter->number // 當容器中的元素為結構體或類時,相當於對其解引用,並返回number成員值

iter++; iter--; //迭代器的自增自減

iter1 == iter2 //當iter1和iter2指向同一容器的同一元素時相等,或者同時指向.end();

只有vector和deque中,迭代器支援的算數運算: iter+n -n, iter1 + iter2 – iter3; 關係運算:>,<,>=,<=

注意:在使用迭代器時,必須留意哪些操作會使迭代器失效,比如增刪等操作。例:當vector在執行來push_back的操作後,就不能再信任之前的iterator值了

size_type // 無符號整型,足以儲存最大長度可能的容器長度

iterator // 此容器的迭代器型別

reverse_iterator // 此容器按逆序定址的迭代器

const_iterator // 唯讀迭代器

const_reverse_iterator // 唯讀逆序迭代器

c.push_back(t) // 在容器c的尾部新增

c.push_front(t) // 在容器c 的前端新增

c.insert(iter, t) //在迭代器iter所指位置前新增元素t

c.insert(iter, itera, iterb) // 在迭代器iter所指位置前新增有迭代器itera,iterb所限制範圍內的元素

注意:容器元素的插入,複製結果都是原資料的副本,互不影響。

c.size() // 返回元素個數,型別為 c::size_type

c.empty()

c.resize(n) // 調整容器的長度大小,使其能夠枸容納n個元素

c.resize(n,t) // 新增的範圍都以元素t來填充

c.back() //返回容器c的最後乙個元素的引用

c.front() //返回容器的第乙個元素的引用

c[n] //下標操作,只有vector,deque (string) 可以使用

c.erase(p) // 刪除迭代器p所指向的元素

c.erase(b, e) //刪除迭代器b,e之間的元素

c.pop_back() //刪除容器最後乙個元素

c.pop_front() //刪除容器第乙個元素

c.clear() // 清空容器

c1.swap(c2) // c1,c2存放內容交換

c.assign(b, e) //重新設定c的元素,將迭代器b,e之間的元素複製到c中去,b,e必須不是指向c中元素的迭代器

C STL容器學習(一)

容器 一些特定型別物件的集合 順序容器 vector list forward list vector 可變大小陣列,支援快速隨機訪問 list 雙向鍊錶,只支援雙向順序訪問 forward list 單向鍊錶,只支援單向順序訪問 迭代器 迭代器 iterator 是一種物件,它能夠用來遍歷標準模板...

C STL常用容器(一)

使用時需要包含標頭檔案 include 1.初始化vector vec 16 定義了已知長度16的vector vector vec 64,2 定義了初值為2長度64的vector vector vec a 用a向量來建立向量 vector vec a.begin i,a.begin j 定義了值為...

C STL常用容器 一

4 4 2019 4 50 15 pm 2 set 集合 3 string 開始時候引入 includeusing namespace std typename 可以是 int double char node vectorname vector陣列 其中 arrayname 0 arrayname...