我對stl和GP的一點理解

2021-04-12 12:09:02 字數 685 閱讀 6025

什麼是stl?什麼是template?其實之所以要有stl,要有gp,那是因為對於一些不同型別的資料,他們常常有一些相同的操作,比如同一型別的兩個資料之間相加,相減。而我們常常對不同型別的資料又會有一些相同的操作的過程,或者我喜歡稱為有順序的一組操作集合, 這個過程中,除了物件的型別不一樣,其他的都一樣,而這個過程,又會有很高的復用性,這個時候,人們就產生了乙個這樣的想法,把這個過程抽象出來。而前面說的不同資料物件之間相同的操作的定義,就是這個抽象的基礎。

比如說對於查詢這樣一種操作,幾乎所有的物件都會用到,這個時候我們能不能把他抽象成乙個函式呢?當然可以,只要對需要作用的物件型別定義上相等這一操作,再加上別的操作,就可以把這種對這種物件的查詢操作集中到乙個已經寫好的模板函式中去。這樣,不僅實程式再空間上效率提高了,而且在理解上更加方便了,所以這裡我們理所當然可以想到泛型了,對於不同型別,把作用於他們的演算法泛化,就是泛型的思想了。stl中的containers,algorithms,iterators等等就是基於這樣一種思想。

其實多型也是gp 的一種實現方法,而我還在思考多型與stl對泛型的支援的不同。比如對於不同的資料,我們分別定義和宣告他們的加法的實現,那麼對於這乙個加法的符號,我們就可以隨時的作用於這些不同的型之上,這不就是一種泛型嗎?這個於template又有什麼不同呢?我目前想到的只是template是實現在乙個函式裡面的,而多型是需要多個函式來實現的。至於其他的,只有等我下一步來理解了,呵呵。

我對adaboost的一點理解

我理解的adaboost演算法 由程式反觀演算法 容易在介紹adaboost 演算法的文章中找到其演算法流程 我的疑問 1 第三步如何根據訓練資料訓練弱分類器?弱分類器的個數由什麼定,特徵維 數?2 第四步那個公式什麼意思?3 第七步如何歸一化?4 第八步怎麼理解?很多文章是這樣來介紹adaboos...

我對補碼的一點理解

剛剛學習c語言,接觸補碼時,有些不解,計算機為什麼要把減法變成加法來運算呢 一步到位,處理速度不更快麼?後來查了資料才知道,這與計算機本身的計算結構有關,減法變加法,物理方面更容易實現。但補碼是怎樣把減法便加法的呢?本人思考了一下,有如下心得 我們先來看一道題 59 18 47 就是 0011 10...

我對類和結構的一點理解

1 首先說明一下到目前為止我掌握的一點點的知識。a 類是引用型別。可以自動以預設的構造的函式。b 結構是值型別,所有的值型別都是基於結構型別的,不可以自動以預設的建構函式。c 類和結構進行比較的時候都是比較他們的引用,但是為什麼值型別進行比較的時候會認為他們是相同的,或者是不相同的那,這是因為值型別...