MST

星途 面试题库

面试题:C++函数模板全特化的基础实现

请编写一个函数模板,用于比较两个同类型的数值大小并返回较大值。然后针对`int`类型进行全特化,当比较两个`int`类型值时,如果相等则返回 -1,否则返回较大值。
22.2万 热度难度
编程语言C++

知识考点

AI 面试

面试题答案

一键面试
#include <iostream>

// 函数模板
template <typename T>
T maxValue(T a, T b) {
    return a > b? a : b;
}

// int类型的全特化
template <>
int maxValue<int>(int a, int b) {
    if (a == b) {
        return -1;
    } else {
        return a > b? a : b;
    }
}

你可以这样使用这个函数:

int main() {
    int num1 = 5, num2 = 10;
    std::cout << "较大值: " << maxValue(num1, num2) << std::endl;

    num1 = 10, num2 = 10;
    std::cout << "较大值: " << maxValue(num1, num2) << std::endl;

    double d1 = 3.14, d2 = 2.71;
    std::cout << "较大值: " << maxValue(d1, d2) << std::endl;

    return 0;
}