C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

指定されたイテレータのタイプを見つけるためのC++プログラム


イテレータは、コンテナの要素を反復処理するために使用されるポインタのようなオブジェクトです。イテレータを使用する主な利点は、共通のインターフェースを作成し、アルゴリズムを実装に使用されるコンテナのタイプに影響されないようにすることです。

C ++標準ライブラリには、イテレータのタイプがあります-

  • フォワードイテレータ
  • 双方向イテレータ
  • 入力イテレータ
  • 出力イテレータ
  • ランダムアクセスイテレータ

プログラムは、上記のイテレータのどれがデータ構造によって使用されているかをチェックすることです。

使用するイテレータのタイプを決定するのに役立つ可能性のあるいくつかの要因があります。

  • typeid 、実行時に型識別情報を返します。

  • イテレータの特性 、イテレータが所有するプロパティを定義します。

  • イテレータカテゴリ イテレータが属するカテゴリを定義するために使用されます。

#include <bits/stdc++.h>
using namespace std;
template <class T>
string iteratortype(T iterator){
   if (typeid(typename iterator_traits<T>::iterator_category)
      == typeid(input_iterator_tag))
      return "Input";
   else if (typeid(typename iterator_traits<T>::iterator_category)
      == typeid(output_iterator_tag))
      return "Output";
   else if (typeid(typename iterator_traits<T>::iterator_category)
      == typeid(forward_iterator_tag))
      return "Forward";
   else if (typeid(typename iterator_traits<T>::iterator_category)
      == typeid(bidirectional_iterator_tag))
      return "Bidirectional";
   else if (typeid(typename iterator_traits<T>::iterator_category)
      == typeid(random_access_iterator_tag))
      return "Random_Access";
   return "Missing";
}
int main(){
   vector<int> vec;
   auto iter = vec.begin();
   cout <<iteratortype(iter) << " Iterator\n";
   return 0;
}

出力

Random_Access Iterator

  1. C++で三角形の図心を見つけるプログラム

    この問題では、三角形の3つの頂点の座標を示す2D配列が与えられます。私たちのタスクは、C++で三角形のセントロイドを見つけるプログラムを作成することです。 セントロイド 三角形の3つの中央値は、三角形の3つの中央値が交差する点です。 中央値 三角形の頂点は、三角形の頂点とその反対側の線の中心点を結ぶ線です。 問題を理解するために例を見てみましょう 入力 (-3, 1), (1.5, 0), (-3, -4) 出力 (-3.5, -1) 説明 Centroid (x, y) = ((-3+2.5-3)/3, (1 + 0 - 4)/3) = (-3.5, -1) ソリューションアプロ

  2. C++で平行四辺形の面積を見つけるプログラム

    この問題では、平行四辺形の底と高さを表す2つの値が与えられます。私たちのタスクは、C++で平行四辺形の領域を見つけるプログラムを作成することです。 平行四辺形 は、反対側が等しく平行な4辺の閉じた図形です。 問題を理解するために例を見てみましょう 入力 B = 20, H = 15 出力 300 説明 平行四辺形の面積=B* H =20 * 15 =300 ソリューションアプローチ この問題を解決するために、平行四辺形の面積の幾何学的公式を使用します。 Area = base * height. ソリューションの動作を説明するプログラム 例 #include <io