一、什么是容器?
- 所謂容器,就是可以承載,包含元素的一個(gè)器件,它是STL六大組件之一,是容器、算法、迭代器中最重要也是最核心的一部分。
二、STL中各大容器的結(jié)構(gòu)與分類
2.1 順序性容器
2.1.1 什么是順序性容器?
順序性容器就是將一組具有相同類型的元素以嚴(yán)格的線性形式組織起來(lái)
2.1.2 有哪些順序性容器?
這里給大家整理成了一個(gè)表格的形式,如下表所示
容器 | 簡(jiǎn)介說(shuō)明 |
---|---|
vector | 可變大小數(shù)組。相當(dāng)于數(shù)組,可動(dòng)態(tài)構(gòu)建,支持隨機(jī)訪問(wèn),無(wú)頭插和尾插,僅支持inset插入,除尾部外的元素刪除比較麻煩。但使用最為廣泛 |
deque | 雙端隊(duì)列。支持頭插、刪,尾插、刪,隨機(jī)訪問(wèn)較vector容器來(lái)說(shuō)慢,但對(duì)于首尾的數(shù)據(jù)操作比較方便 |
list | 雙向循環(huán)鏈表。使用起來(lái)很高效,對(duì)于任意位置的插入和刪除都很快,在操作過(guò)后,以后指針、迭代器、引用都不會(huì)失效 |
forward_list | 單向鏈表。只支持單向訪問(wèn),在鏈表的任何位置進(jìn)行插入/刪除操作都非常快 |
array | 固定數(shù)組。vector的底層即為array數(shù)組,它保存了一個(gè)以嚴(yán)格順序排列的特定數(shù)量的元素 |
2.1.3 順序性容器在什么場(chǎng)合使用?
一般大多數(shù)的題目都可以使用vector容器,除非有特定需求使用其他容器更加合理方便;
如果需要在一串?dāng)?shù)字的頭尾進(jìn)行操作,偏向deque,對(duì)于較中間的元素操作,不推薦
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。
舉報(bào)投訴
-
容器
+關(guān)注
關(guān)注
0文章
490瀏覽量
21986 -
C++
+關(guān)注
關(guān)注
21文章
2085瀏覽量
73302 -
STL
+關(guān)注
關(guān)注
0文章
85瀏覽量
18260 -
數(shù)組
+關(guān)注
關(guān)注
1文章
411瀏覽量
25824
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
c++之list容器
list是序列容器,允許在序列中的任何位置執(zhí)行固定O(1)時(shí)間復(fù)雜度的插入和刪除操作,并在兩個(gè)方向進(jìn)行迭代。list容器是一個(gè)雙向循環(huán)鏈表。
C++零基礎(chǔ)教程STL容器篇之stack容器,輕松上手C++STL
編程語(yǔ)言C++語(yǔ)言
電子學(xué)習(xí)
發(fā)布于 :2023年01月14日 11:27:23
C++零基礎(chǔ)教程STL容器篇之queue容器,輕松上手C++STL
編程語(yǔ)言C++語(yǔ)言
電子學(xué)習(xí)
發(fā)布于 :2023年01月14日 11:41:21
C++零基礎(chǔ)教程STL容器篇之deque容器,輕松上手C++STL
編程語(yǔ)言C++語(yǔ)言
電子學(xué)習(xí)
發(fā)布于 :2023年01月14日 11:41:55
電容器的常見(jiàn)失效模式和失效機(jī)理【中】
`電容器的常見(jiàn)失效模式和失效機(jī)理【中】3.2電容器失效機(jī)理分析3.2.1潮濕對(duì)電參數(shù)惡化的影響空氣中濕度過(guò)高時(shí),水膜凝聚在電
發(fā)表于 11-18 13:18
淺析嵌入式Linux容器技術(shù)
提供輕量級(jí)的虛擬化,以便隔離進(jìn)程和資源,而且不需要提供指令解釋機(jī)制以及全虛擬化的其他復(fù)雜性。相當(dāng)于C++中的NameSpace。容器有效地將由單個(gè)操作系統(tǒng)管理的資源劃分到孤立的組
發(fā)表于 10-27 08:56
詳細(xì)剖析C++的的3種容器
容器是隨著面向?qū)ο笳Z(yǔ)言的誕生而提出的,容器類在面向?qū)ο笳Z(yǔ)言中特別重要,甚至它被認(rèn)為是早期面向?qū)ο笳Z(yǔ)言的基礎(chǔ)。在現(xiàn)在幾乎所有的面向?qū)ο蟮恼Z(yǔ)言中也都伴隨著一個(gè)容器集,在C++
C++容器的使用代碼資料總結(jié)免費(fèi)下載
本文檔的主要內(nèi)容詳細(xì)介紹的是C++容器的使用代碼資料總結(jié)免費(fèi)下載。
發(fā)表于 01-29 10:52
?2次下載
一文帶你手撕 STL 容器源碼(上)
前言源碼之前,了無(wú)秘密。 在 STL 編程中,容器是我們經(jīng)常會(huì)用到的一種數(shù)據(jù)結(jié)構(gòu),容器分為序列式容器和關(guān)聯(lián)式
C++之STL庫(kù)中的容器
前面跟大家介紹過(guò)STL庫(kù),STL主要是由6大部分組成,其中第一個(gè)提到的就是容器,容器在介紹STL中小哥有簡(jiǎn)單的跟大家介紹過(guò),今天稍微再詳細(xì)介
C++學(xué)習(xí)筆記之順序容器
C++中的順序容器是一種用于存儲(chǔ)和管理元素序列的數(shù)據(jù)結(jié)構(gòu)。它們提供了一組有序的元素,并支持在序列的任意位置插入和刪除元素。C++標(biāo)準(zhǔn)庫(kù)中提供了多種順序
C++入門(mén)之通用算法
C++ 是一種強(qiáng)大的編程語(yǔ)言,它提供了許多通用算法,可以用于各種容器類型。這些算法是通過(guò)迭代器來(lái)操作容器中的元素,因此它們是通用的,可以用于
使用C++ sort函數(shù)對(duì)vector進(jìn)行自定義排序
今天在學(xué)一些C++ STL容器,看到sort函數(shù)允許自定義排序規(guī)則,小小地實(shí)操了一下。
評(píng)論