泛型迭代器-摘自《C++沉思錄》Andrew Koenig

       我們所使用的某些特定算法本身就確定了一些行爲模式,一些我們期望模板參數應該具有的行爲模式。

       我們必須找出一套能很好的適合某個算法集的需求,以及另一套適合另一個算法集的需求,以此類推。如果夠幸運的話,我們可能只需要少得可以記住的幾套需求,同時還可以使用各種各樣的算法。

       記住輸入迭代器既不是某個特殊類型也不是對象是很重要的。相反,它是一個概念,指的是滿足這些特定需求的完整類型集合中的任意成員。

       繼承是關聯類型的一種方法,但是迭代器不屬於類型的範疇。相反,它們是一系列類型應該滿足或者不應該滿足的需求的集合。

       我們已經定義了5種類型的迭代器(輸入迭代器,輸出迭代器,向前迭代器,雙向迭代器,隨機迭代器).......我們這裏需要的並不是繼承,即使看起來像是。可能我們應該稱爲概念繼承(conceptual inheritance)。它和迭代器的那些需求一樣都不包含在C++語言或者C++庫中;相反,它們是構建C++庫的概念框架的一部分。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章