目錄
資料結構3
c++標準庫
1.stack
2.queue
3.vector
4.list 總結
在很多程式語言中,演算法與資料結構的相關類和函式都與輸入輸出,字串等一同加入了庫,我們可以直接從庫中呼叫。stl中有很多名為容器的類,用於管理資料集合,我們只需定義對應的容器,然後呼叫相應的函式或演算法即可。但是在使用之前,我們不但要了解庫的特徵和複雜度,還要將其有效運用至更高的演算法與資料結構之中。
下面對c++標準庫的核心,即標準模組庫(standard template library,stl)做簡單介紹。
下面介紹stack,queue,vector,list的使用方法。
#include用來將stl中的stack包含到程式中。stack中的函式及功能函式名功能複雜度stack<>用於生成棧,我們需要在<>中指定型別,從而生成該型別資料的棧。例如:stacks;
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...