티스토리 뷰

프로그래밍/C++

템플릿 Template

에어버스 2018. 4. 21. 12:25

템플릿 Template

int max(int x[], int len)
{
 int max = x[0];
 for (int i = 0; i < len; i++)
  if (max < x[i])
   max = x[i];
 return max;
}

long max(long x[], int len)
{
 long max = x[0];
 for (int i = 0; i < len; i++)
  if (max < x[i])
   max = x[i];
 return max;
}

double max(double x[], int len)
{
 double max = x[0];
 for (int i = 0; i < len; i++)
  if (max < x[i])
   max = x[i];
 return max;
}

int main()
{
 int small[] = { 1, 24, 34, 22 };
 long medium[] = { 23, 345, 234, 123 };
 double large[] = { 23.0, 1.4, 2.3, 56.2 };

 int lensmall = sizeof small / sizeof small[0];
 int lenmedium = sizeof medium / sizeof medium[0];
 int lenlarge = sizeof large / sizeof large[0];

 cout << max(small, lensmall) << endl;
 cout << max(medium, lenmediuml) << endl;
 cout << max(large, lenlarhe) << endl;
}

데이터 타입만 다를뿐 함수 내용이 같을때 템플릿을 사용하면 편하다.
컴파일 할때 위 처럼 각각의 함수가 만들어진다.

template<class T> max(T x[], int len)
{
 T max = x[0];
 for (int i = 0; i < len; i++)
  if (max < x[i])
   max = x[i];
 return max;
}

int main()
{
 int small[] = { 1, 24, 34, 22 };
 long medium[] = { 23, 345, 234, 123 };
 double large[] = { 23.0, 1.4, 2.3, 56.2 };

 int lensmall = sizeof small / sizeof small[0];
 int lenmedium = sizeof medium / sizeof medium[0];
 int lenlarge = sizeof large / sizeof large[0];

 cout << max(small, lensmall) << endl;
 cout << max(medium, lenmediuml) << endl;
 cout << max(large, lenlarhe) << endl;
}

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31