資料結構3 C 標準模板庫STL中的寶貝

2021-10-20 02:15:48 字數 2306 閱讀 5998

目錄

資料結構3

c++標準庫

1.stack

2.queue

3.vector

4.list 總結

在很多程式語言中,演算法與資料結構的相關類和函式都與輸入輸出,字串等一同加入了,我們可以直接從庫中呼叫。

但是在使用之前,我們不但要了解庫的特徵和複雜度,還要將其有效運用至更高的演算法與資料結構之中。

下面對c++標準庫的核心,即標準模組庫(standard template library,stl)做簡單介紹。

stl中有很多名為容器的類,用於管理資料集合,我們只需定義對應的容器,然後呼叫相應的函式或演算法即可。

下面介紹stack,queue,vector,list的使用方法。

#include用來將stl中的stack包含到程式中。

stack<>用於生成棧,我們需要在<>中指定型別,從而生成該型別資料的棧。例如:stacks;

stack中的函式及功能函式名功能複雜度

size()

返回棧中元素的個數

o(1)

top()

返回棧頂元素

o(1)

pop()

取出並刪除棧頂元素

o(1)

push()

向棧頂新增元素

o(1)

empty()

在棧為空時返回true

o(1)

stack的使用方法:

#include#includeusing namespace std;

int main()

cout << endl;

}int main()

#include用來將stl中的list包含到程式中。

listr<>用於生成雙向鍊錶,我們需要在<>中指定型別,從而生成該型別資料的雙向鍊錶。例如:listl;

list可以像vector一樣通過「」運算子直接訪問特定元素,也可以用迭代器逐個進行訪問。

另外,list還具備一項vector所不具備的特長,那就是元素的插入與刪除操作只需o(1),效率高。

list中的函式及功能函式名功能複雜度

size()

返回表中元素的個數

o(1)

begin()

返回指向表開頭的迭代器

o(1)

end()

返回指向表末尾(最後乙個元素的後乙個位置)的迭代器

o(1)

push_back(x)

在表的末尾新增元素x

o(1)

push_front(x)

在表的開頭新增元素x

o(1)

pop_back()

刪除位於表末尾的元素

o(1)

pop_front()

刪除位於表開頭的元素

o(1)

insert(p,x)

在表的位置p插入元素x

o(1)

erase(p)

刪除表中位置p的元素

o(1)

clear()

刪除表中所有元素

o(n)

list的使用方法:

#include#includeusing namespace std;

int main()

靈活的標準模板庫中的這些演算法,可以讓我們高效的管理資料。

以上只是一些簡單的使用方式,我們要學會將這些知識與實際問題,例題相結合,才能更好的發揮出它們真正的本領。

讀《挑戰程式設計競賽》第六天 (侵刪)2021.2.24

(2021.7.6 第一次修改)

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...