> 백엔드 개발 > C++ > C++ 함수 템플릿에서 클래스 템플릿을 사용하는 방법은 무엇입니까?

C++ 함수 템플릿에서 클래스 템플릿을 사용하는 방법은 무엇입니까?

WBOY
풀어 주다: 2024-04-15 12:48:01
원래의
478명이 탐색했습니다.

C++ 函数模板中的类模板是如何使用的?

C++ 함수 템플릿의 클래스 템플릿

C++ 함수 템플릿은 클래스 템플릿을 인식하고 이를 매개변수 유형으로 활용합니다. 이를 통해 다양한 데이터 유형 및 구조로 작동하는 일반 함수를 생성할 수 있습니다.

Syntax

template<typename T>
void func(const T& arg1, const T2& arg2, ...);
로그인 후 복사

여기서:

  • T는 함수 매개변수의 유형 템플릿입니다. T 是函数参数的类型模板。
  • arg1, arg2 及后续参数是函数的实际参数。

实战案例

考虑一个打印任何类型的一对值的函数:

template <typename T1, typename T2>
void print_pair(const T1& a, const T2& b) {
  std::cout << a << " " << b << std::endl;
}
로그인 후 복사

我们可以将这个函数模板应用于不同的类型组合:

int main() {
  print_pair(1, 2.5);  // 打印整数和浮点数
  print_pair("Hello", "World");  // 打印字符串
  return 0;
}
로그인 후 복사

在第一个示例中,T1 被推导为 intT2 被推导为 double。在第二个示例中,T1T2 都被推导为 std::string

arg1, arg2 및 후속 매개변수는 함수의 실제 매개변수입니다.

실용적 예

    모든 유형의 값 쌍을 인쇄하는 함수를 생각해 보세요.
  • rrreee 이 함수 템플릿을 다양한 유형 조합에 적용할 수 있습니다. rrreee
  • 첫 번째 예에서는 T1int로 추론되고, T2double로 추론됩니다. 두 번째 예에서는 T1T2가 모두 std::string으로 추론됩니다.
  • 장점
  • 클래스 템플릿의 함수 템플릿을 사용하면 다음과 같은 이점이 있습니다.
🎜코드 재사용성: 🎜각 데이터 유형에 대해 여러 함수를 작성할 필요가 없습니다. 🎜🎜🎜보편성: 🎜함수는 유형 템플릿의 요구 사항을 충족하는 모든 데이터 유형에 적용될 수 있습니다. 🎜🎜🎜코드 가독성 향상: 🎜중복 코드를 줄이고 코드 가독성과 유지 관리성을 향상시킵니다. 🎜🎜

위 내용은 C++ 함수 템플릿에서 클래스 템플릿을 사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿