迭代器(iterator)、容器(container)、算法(algorithm)之間的巧妙結(jié)合

迭代器是一種抽象的設(shè)計概念,現(xiàn)實程序語言中并沒有直接對應(yīng)于這個概念的實物。《設(shè)計模式》一書提供有23個設(shè)計模式的完整描述,其中iterator模式定義如下:提供一種方法,使之能夠依序巡訪某個聚合物(容器)所含 的各個元素,而又無需暴露該聚合物的內(nèi)部表述方式。本文詳細講解迭代器。
不論是泛型思維或stl的實際運用,迭代器都扮演著重要的角色。
stl的中心思想在于:將靈氣窗口和算法分開,彼此獨立設(shè)計,最后再以帖膠著劑將它們撮合在一起。窗口和算法的泛型化,從技術(shù)角色來看并不困難,C++的class template和function template 可分別達成目標。

如下例子:

template<class InputIterator,class T>
InputIterator find(InputIterator first,InputIterator last, const T& value) {
      while(first != last && *frist != value)
          ++first;
      return first;
}
迭代器是一種smart pointer

迭代器是一種行為類似的對象,而各種行為中最也是最重要的命題內(nèi)容提領(lǐng)和成員訪問,因此,迭代器最重要的編程工作就是對operator*和operator->進行重載工作。

T& operator*() const { *pointer;}
T* operator->() const { opionter;}

關(guān)于這一點,C++標準程序庫有一個auto_prt可供我們參考。這是一個用來包裝原生的對象,聲名狼藉的內(nèi)存漏洞問題可經(jīng)獲得解決 [1]


后續(xù)待寫。


  1. auto_ptr 在c11中已經(jīng)廢除了 ?

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

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

  • 很實用的編程英語詞庫,共收錄一千五百余條詞匯。 第一部分: application 應(yīng)用程式 應(yīng)用、應(yīng)用程序app...
    春天的蜜蜂閱讀 1,606評論 0 22
  • 1 場景問題# 1.1 工資表數(shù)據(jù)的整合## 考慮這樣一個實際應(yīng)用:整合工資表數(shù)據(jù)。 這個項目的背景是這樣的,項目...
    七寸知架構(gòu)閱讀 2,640評論 0 53
  • C++運算符重載-下篇 本章內(nèi)容:1. 運算符重載的概述2. 重載算術(shù)運算符3. 重載按位運算符和二元邏輯運算符4...
    Haley_2013閱讀 1,522評論 0 49
  • 迭代器是一種抽象的設(shè)計概念,現(xiàn)實程序語言中并沒有直接對應(yīng)于這個概念的實物。在設(shè)計模式中,迭代器模式是指:提供一種方...
    wayyyy閱讀 1,260評論 1 2
  • 今天我看了一本有關(guān)勵志的書《最努力的運氣最好》她曾經(jīng)是個非常浪費時間的人,考上臺灣大學(xué)之后,經(jīng)常逃課,談戀愛,直...
    辣條隊友i閱讀 540評論 0 0

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