01.Bit 단기/C++

43_find 템플릿 함수 구현

chojju 2018. 5. 9. 10:56
반응형

#include <iostream>
using namespace std;
/*
int * find(int *begin, int *end, int value)
{
 while (begin != end && *begin != value)
  begin++;
 return begin;
 //1. 찾았을 때    ; begin != end
 //2. 못찾았을 때  ; begin == end 
}
*/
//함수 템플릿 예

template <typename T1, typename T2>
T1 myfind(T1 begin, T1 end, T2 value)
{
 while (begin != end && *begin != value)
  begin++;
 return begin;
}


int main()
{
 int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
 
 //구간 : 1인자 ~ 2인자
 //       arr+10 ?
 int *p = myfind(arr, arr + 10, 30);
 if (p == arr + 10)
  cout << "못찾았다." <<  endl;
 else
  cout << "찾았다. : " << *p << endl;

 float arr1[10] = { 1.1f,2.2f,3.2f,4.3f,5.5f,6.5f,7.5f,8.5f,9.5f,10.4f };

 //구간 : 1인자 ~ 2인자
 //       arr+10 ?
 float *p1 = myfind(arr1, arr1 + 10, 3.2f);
 if (p1 == arr1 + 10)
  cout << "못찾았다." << endl;
 else
  cout << "찾았다. : " << *p1 << endl;
 return 0;
}

반응형