反復器(iterator)、容器(container)、アルゴリズム(algorithm)の間の巧みな結合

1017 ワード

反復器は抽象的な設計概念であり,現実プログラム言語ではこの概念の実物に直接対応していない.「設計モード」という本は23の設計モードの完全な説明を提供し、iteratorモードの定義は以下の通りである:あるポリマー(容器)に含まれる各元素を順次巡回することができ、そのポリマーの内部表現方式を暴露する必要がない方法を提供する.反復器について詳しく説明します.汎用的な思考やstlの実際の運用にかかわらず、反復器は重要な役割を果たしています.stlの中心思想は,霊気窓とアルゴリズムを分離し,互いに独立して設計し,最後に貼り付け剤でそれらをまとめることである.ウィンドウとアルゴリズムの汎用化は,技術的役割から見ると難しくなく,C++のclass templateとfunction templateがそれぞれ目標を達成できる.
次の例を示します.
template
InputIterator find(InputIterator first,InputIterator last, const T& value) {
      while(first != last && *frist != value)
          ++first;
      return first;
}

反復器はsmart pointerです
反復器は動作が似ているオブジェクトであり、さまざまな動作の中で最も重要な命題コンテンツの抽出とメンバーアクセスであるため、反復器の最も重要なプログラミング作業はoperator*とoperator->をリロードすることです.
T& operator*() const { *pointer;}
T* operator->() const { opionter;}

この点については、C++標準ライブラリにauto_があります.prtは参考になります.これはオリジナルのオブジェクトを包装するためのもので、評判の悪いメモリの脆弱性の問題を解決することができる[1].
続きは書きます.
auto_ptrはc 11で廃止されました↩