C++에서 템플릿과 제네릭의 차이점: 템플릿: 컴파일 타임에 정의되고, 유형이 명확하며, 효율성이 높고, 코드 크기가 작습니다. 제네릭: 런타임 타이핑, 추상 인터페이스는 유연성과 낮은 효율성을 제공합니다.
C++ 템플릿과 제네릭의 비교
개념
차이
Features | Template | Generics |
---|---|---|
정의 타이밍 | 컴파일 시간 | 런타임 |
Typed | Explicit | Inferred |
Efficiency | 빠르게 | 느리게 |
코드 크기 | 더 작게 | 더 작게 |
실제 사례
template:
template<typename T> T max(T a, T b) { return (a > b) ? a : b; }
이 템플릿 함수는 다양한 유형을 계산할 수 있습니다. 데이터의 최대값(예: :
int max_int = max(10, 20); // 输出:20 double max_double = max(3.14, 2.71); // 输出:3.14
Generics:
class NumberComparator { public: bool operator()(int a, int b) const { return a < b; } };
이 일반 클래스는 정수 비교를 위한 인터페이스를 구현하고 다양한 정렬 알고리즘에 사용할 수 있습니다.
std::vector<int> numbers = {5, 2, 8, 3, 1}; std::sort(numbers.begin(), numbers.end(), NumberComparator()); for (auto& number : numbers) { std::cout << number << " "; // 输出:1 2 3 5 8 }
결론
템플릿과 제네릭 모두 서로 다른 작업을 처리하는 코드에 대한 강력한 C++ 기능입니다. 데이터 유형. 템플릿은 컴파일 타임에 입력되므로 더욱 효율적이고 코드 크기가 작아집니다. 제네릭은 런타임에 유형 추론을 수행하고 보다 추상적인 인터페이스를 제공하지만 효율성은 약간 떨어집니다.
위 내용은 C++ 템플릿과 제네릭을 비교하시나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!