Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

주어진 반복자의 유형을 찾는 C++ 프로그램

<시간/>

반복자는 컨테이너의 요소를 반복하는 데 사용되는 포인터와 같은 객체입니다. 반복자를 사용하는 주요 이점은 공통 인터페이스를 만들고 알고리즘을 구현하는 데 사용되는 컨테이너 유형에 영향을 받지 않도록 하는 것입니다.

C++ 표준 라이브러리에는 반복자의 유형이 있습니다 -

  • 순방향 반복자
  • 양방향 반복자
  • 입력 반복자
  • 출력 반복자
  • 랜덤 액세스 반복자

프로그램은 위의 반복자 중 데이터 구조에서 사용하는 반복자를 확인하는 것입니다.

사용된 반복기의 유형을 결정하는 데 유용할 수 있는 몇 가지 요소가 있습니다.

  • 유형 ID , 런타임에 유형 식별 정보를 반환합니다.

  • 반복자 특성 , iterator가 소유하는 속성을 정의합니다.

  • 반복자 카테고리 iterator가 속한 범주를 정의하는 데 사용됩니다.

예시

#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