1 stl基礎
泛型是什麼,c++泛型程式設計又是什麼?
實質上就是不使用具體資料型別(int、double、float等),而是使用一種通用型別來進行程式設計的方法,泛泛的描述一下資料,這個方法可以大規模的減少程式**的編寫量。
模板函式如下:
其中,t是乙個佔位符(資料型別佔位符),也就是說,將來t這個位置是乙個真實的、具體的資料型別。
所以,可以把t這種型別佔位符也稱為一種資料型別,就叫泛型(generic type)。使用這種型別佔位符的程式設計方式就叫泛型程式設計。
總之,泛型也是一種資料型別,但它是用來代替所有型別的「通用型別」。
template
<
typename t>
intfunc
(const t &a1,
const t &a2)
template
<
class
t>
inline
intfunc
(const t &a1,
const t&a2)
tempalte<
typename t1,
typename t2,
typename t3>
t1 func
(const t2 &t2,
const t3 &t3)
//呼叫方法
func<
long
>
(i, log)
;
c++ stl基本組成(6大元件+13個頭檔案)
通常認為,stl 是由容器、演算法、迭代器、函式物件、介面卡、記憶體分配器這 6 部分構成,其中後面 4 部分是為前 2 部分服務的,它們各自的含義如表 1 所示。
介面卡:是模板指標 規範輸入 引數和返回值型別的
容器 簡單的理解容器,它就是一些模板類的集合,但和普通模板類不同的是,容器中封裝的是組織資料的方法(也就是資料結構)。stl 提供有 3 類標準容器,分別是序列容器、排序容器和雜湊容器,其中後兩類容器有時也統稱為關聯容器。它們各自的含義如表 1 所示。
容器簡單理解就是資料結構 列表 佇列 字典這些
迭代器類別
stl 標準庫為每一種標準容器定義了一種迭代器型別,這意味著,不同容器的迭代器也不同,其功能強弱也有所不同。
容器的迭代器的功能強弱,決定了該容器是否支援 stl 中的某種演算法。
常用的迭代器按功能強弱分為輸入迭代器、輸出迭代器、前向迭代器、雙向迭代器、隨機訪問迭代器 5 種。本節主要介紹後面的這 3 種迭代器。
c++ stl關聯式容器 就是python 中的字典 key-value格式
仿函式c++ 可以通過運算子過載來改變物件的外觀 例如 過載 使物件看起來像陣列 過載()使物件看起來像函式
c++中 把類過載() 以後物件看起來像函式的這種方式叫做仿函式
C STL 標準模板庫
1.泛型程式設計 在c 中,模板是泛型程式設計的基礎。下面有乙個stl初體驗的 include include include include include include using namespace std 自定義函式物件 template class square int test int...
C STL標準模板庫
stl共有6中元件 容器 容器介面卡 迭代器 演算法 函式物件 仿函式 和函式介面卡。最常用的是順序容器,順序容器內的元素按其位置進行儲存和訪問。除順序容器外,標準庫還定義了幾種關聯容器。這裡我們主要講一下順序容器。標準庫定義了三種順序容器型別 vector list和deque,它們的差別在於訪問...
c STL(標準模板庫)
c stl 標準模板庫 是一套功能強大的 c 模板類,提供了通用的模板類和函式,這些模板類和函式可以實現多種流行和常用的演算法和資料結構,如向量 鍊錶 佇列 棧。元件描述 容器 containers 容器是用來管理某一類物件的集合。c 提供了各種不同型別的容器,比如 deque list vecto...