【C++】STL概覽

1. 泛型編程GP與面向?qū)ο驩OP

GP(Generic Programming)就是使用模板template為主要工具來(lái)編寫(xiě)程序。
OOP(Object-Oriented Programming)面向?qū)ο缶幊叹褪鞘褂美^承,利用虛函數(shù)實(shí)現(xiàn)的多態(tài)技術(shù)編寫(xiě)程序。
GP與OOP最大的區(qū)別就是
GP試圖將datas和methods分開(kāi)
OOP試圖將datas和methods關(guān)聯(lián)起來(lái)

2. C++ Standard Library vs. Standard Template Library

C++ Standard Library——C++標(biāo)準(zhǔn)庫(kù)(包括STL,范圍比STL大)
STL(Standard Template Library)——C++標(biāo)準(zhǔn)模板庫(kù)(主要包括六大部件)
STL是泛型編程最成功的作品。
STL六大部件
容器(Containers)
分配器(Allocators)
算法(Algorithms)
迭代器(Iterators)
適配器(Adapters)
仿函數(shù)(Functors)

STL六大部件關(guān)系圖
STL六大部件使用示例

3. 我們的目標(biāo):

level 0:使用C++標(biāo)準(zhǔn)庫(kù)
level 1:了解C++標(biāo)準(zhǔn)庫(kù)(胸中自有丘壑)
level 2:良好使用C++標(biāo)準(zhǔn)庫(kù)
level 3:擴(kuò)充C++標(biāo)準(zhǔn)庫(kù)

4. C++頭文件

STL主要以頭文件的形式存在

使用C++的頭文件的方式:(不帶.h后綴名)

#include <vector>

使用C的頭文件的方式:(可以帶也可以不帶,如果不帶要在前面加“c”)

#include <cstdio>

或者

#include <stdio.h>

命名空間std(standard的縮寫(xiě))

新式頭文件內(nèi)的組件都封裝在叫做std的命名空間中,使用庫(kù)函數(shù)或者組件式要顯示聲明使用std名字空間或者std空間中的某些組件:

using namespace std; //一次開(kāi)放所有 (推薦)

或者

using std::cout; //一個(gè)一個(gè)的打開(kāi)

舊式的頭文件不包含在std命名空間內(nèi)

5. C++標(biāo)準(zhǔn)庫(kù)的版本

Visual C++系列
Dev C++ 5.11(使用的是GNU4.9.2版本)

linux下g++版本

6. 時(shí)間復(fù)雜度

7. “前閉后開(kāi)”區(qū)間

【a, b】前閉后閉區(qū)間 a <= x <= b
【a, b)前閉后開(kāi)區(qū)間 a <= x < b
(a, b)前開(kāi)后開(kāi)區(qū)間 a < x < b
標(biāo)準(zhǔn)庫(kù)規(guī)定,STL所有容器的頭尾指針滿足前閉后開(kāi)區(qū)間。即:
c.begin() —— 指向第一個(gè)元素
c.end() ——指向最后一個(gè)元素的下一個(gè)位置

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容