通俗易懂的C STL

2021-08-28 03:00:20 字數 1072 閱讀 9981

泛型程式設計(generic programming)是一種語言機制,通過它可以實現乙個標準的容器庫。像類一樣,泛型也是一種抽象資料型別,但是泛型不屬於物件導向,它是物件導向的補充和發展。泛型程式設計在c++上的應用主要體現在兩方面:函式模板和類模板。

接下來舉個栗子

csdn部落格

anyway,模板類與類模板、函式模板與模板函式等的區別

模板是 c++ 語言中重要的概念。它提供了一種通用的方法來開發重用的**,即以建立引數化的 c++ 型別。

模板分為兩種型別:函式模板和類模板。

template //似乎沒區別?這個多用。

template//

函式模板與類模板的區別:栗子

//函式模板:

templatemax(const t a, const t b)

這樣用:

int a = 1, b = 2;

max(a, b);

float c = 1.0f, d = 2.0f;

max(c, d);

//類模板:

templateclass c

};對這個類進行例項化:

ccn;

ccf;

現在看出區別了吧,區別在於函式模板和類模板的使用方式上:

函式模板在使用時不需要程式設計師指定型別,編譯器在編譯的時候會自動繫結;而類模板需要程式設計師手工指定,指定的方式是:類名字《型別》。

迭代器(iterator)是 stl 的核心技術,提供了統一訪問容器元素的方法,為編寫通用演算法提供了堅實的技術基礎。

迭代器即指標,可以是需要的任意型別,它的最大好處是可以使容器和演算法分離。例如,有兩個容器類,myarray 是某類陣列集合;mylink 是某型別鍊錶集合。它們都有顯示、查詢和排序等功能,常規思維是每個容器都有自己的顯示、查詢和排序等函式。但是細想,不同容器中完成相同功能**的思路大致是相同的,那麼能不能把它們抽象出來,多個容器僅對應乙個顯示、乙個查詢、乙個排序函式呢?這是泛型思想發展的必然結果,於是迭代器思維就產生了。下面將通過例項來加深對迭代器的理解。

numpy bincount 通俗易懂

bincount的用途很簡單,就是統計出乙個列表的各個元素的出現次數。例如輸入是 1,0,2,2,1,2,3,5 那麼輸出就是 1,2,3,1,0,1 這樣的結果可能並不是很直觀,可能依然會有同學會問為什麼會輸出這樣的結果。我們看看 假如我們把輸入的列表中的數字都統計一遍,形成乙個字典 key是列表...

遷移學習,通俗易懂

一.背景 在之前用深度神經網路進行引數訓練時,我們每次的訓練都是從頭開始的,隨機地初始化網路。在網路層數不深的時候,訓練時間可以接受,但隨著現在網路構越來越複雜,網路層數越來越深,少則幾十層,多者上百層甚至上千層,如果任然每次都從頭開始訓練,時間的開銷則會非常大。例如imagenet網路的訓練常常需...

通俗易懂 理解「委託」

委託的意義在於實現多型 在於讓物件能夠在程式執行時滿足外界對其的改變。1 乙個物件屬性 動作,如果在編譯時就能確定,可以在這個物件的類裡面來實現。2 乙個物件的屬性 動作,如果在執行時才能確定,則只能通過這個物件的委託來實現。換句話說 類,滿足編譯時對物件的設定和要求。委託,用於滿足執行時對物件的設...