C 標準模板庫 STL 彙總

2021-07-27 08:40:02 字數 2460 閱讀 2529

一、stl容器概述

c++ stl (standard template library標準模板庫)是通用類模板和演算法的集合,它給我們提供了一些標準的資料結構的實現如queues(佇列), lists(鍊錶), 和 stacks(棧)等。在我們使用c++程式設計時經常會使用到stl容器,非常簡單也很方便。

stl的容器可以分為以下三個大類:

順序結構:

vectors(動態陣列)

lists(鍊錶)

double ended queues(雙向佇列)

常用函式:

在最後新增乙個元素 push_back()

移除最後乙個元素 pop_back()

插入元素 insert()

刪除指定元素erase()

容器介面卡:

stacks(棧)

queues(佇列)

priority queues(優先佇列)

常用函式:

增加元素 push()

移除元素 pop()

聯合容器:

bitsets

maps

multimaps

sets

multisets

常用函式:

插入元素:insert()

刪除元素:erase()

我們程式設計師使用複雜資料結構的最困難的部分已經由stl完成. 如果我們想使用包含int資料的stack, 我們只要寫出如下的**:

stackmystack;

接下來, 我們只要簡單的呼叫 push() 和 pop() 函式來操作棧. 借助 c++ 模板的威力, 他可以指定任何的資料型別,不僅僅是int型別.  stl stack實現了棧的功能,而不管容納的是什麼資料型別。

二、stl容器彙總

【c++ stl 溫故而知新 001】vector容器和iterator迭代器

三、stl容器比較

vector

deque

list

setmultiset

mapmultimap

名稱向量容器

雙向佇列容器

列表容器

集合多重集合

對映多重對映

內部資料結構

連續儲存的陣列形式(一端開口的組)

連續或分段連續儲存陣列(兩端

開口的陣列)

雙向環狀鍊錶

紅黑樹(平衡檢索二叉樹)

紅黑樹紅黑樹

紅黑樹標頭檔案

#include

#include

#include

#include

#include

#include

#include

操作元素的方式

下標運算子:[0](可以用迭代器,但插入刪除操作時會失效)

下標運算子或迭代器

只能用迭代器(不斷用變數值來遞推新值,相當於指標),不支援使用下標運算子

迭代器迭代器

迭代器迭代器

插入刪除操作迭代器是否失效

插入和刪除元素都會使迭代器失效

插入任何元素都會使迭代器失效。刪除頭和尾元素,指向被刪除節點迭代器失效,而刪除中間元素會使所有迭代器失效

插入,迭代器不會失效。刪除,指向被刪除節點迭代器失效

插入,迭代器不會失效。刪除,指向被刪除節點迭代器失效

插入,迭代器不會失效。刪除,指向被刪除節點迭代器失效

插入,迭代器不會失效。刪除,指向被刪除節點迭代器失效

插入,迭代器不會失效。刪除,指向被刪除節點迭代器失效

vector

deque

list

setmultiset

mapmultimap

名稱向量容器

雙向佇列容器

列表容器

集合多重集合

對映多重對映

特點增加和獲取元素效率

很高,插入和刪除的

效率很低

增加和獲取元素效率

較高,插入和刪除的

效率較高

增加和獲取元素效率

很低,插入和刪除的

效率很高

1.鍵(關鍵字)和值(資料)相等(就是模版只有乙個引數,鍵和值合起來)

2.鍵唯一

3.元素預設按公升序排列

1.鍵和值相等

2.鍵可以不唯一

3.元素預設按公升序排列

1.鍵和值分開(模版有兩個引數,前面是鍵後面是值)

2.鍵唯一

3.元素預設按鍵的公升序排列

1.鍵和值分開

2.鍵可以不唯一

3.元素預設按鍵的公升序排列

定義容器

vectorbook(50);

dequebook(50);

listbook;

setbook;

multisetbook;

mapbook;

multimapbook;

C 標準模板庫STL

stl是標準c 庫的一部分。stl模板類為c 提供了完善的資料結構和演算法。stl的特點 型別引數化 即stl的 中可處理任意自定義型別的物件。泛型程式設計 generic programming 它以模板為基礎,弱化了 實體型別的差異,簡化了程式設計時問題抽象的模型,提供了更好的 封裝性和彈性。s...

C 標準模板庫STL

stl 標準模板庫 包括容器,演算法,迭代器 容器用來儲存資料,比如vector,list,堆疊等,string也算 一共有八個 演算法就是對容器進行操作,比如增刪改查資料 迭代器用來遍歷容器itreator 用指標的方式來遍歷容器的資料 注 平時使用的時候大部分時候我們都用上了,但是面試的時候不能...

c (標準模板庫STL)

stl是一種泛型程式設計 generic programming 容器主要有以下分類 例如 容器的成員函式begin 返回指向容器中第乙個元素的迭代器 end 返回指向容器中最後乙個元素後繼位置的迭代器。下面通過stl中提供的乙個泛型函式find 來說明迭代器與泛型演算法的關係 首先看下stl對於f...