C和C++中泛型编程 - 适应不同类型参数的函数

本文探讨了如何在C和C++中使用泛型编程,特别是通过函数模板来处理不同类型参数。以交换两个整数值为例,展示了C语言的指针实现,以及C++的函数模板实现,强调了最佳实践是在头文件中定义函数模板。
摘要由CSDN通过智能技术生成

      首先一个简单的问题,如何实现交换两个整数的值? 想必每个有编程经验的人都能作答。

C语言用指针实现如下:

void swap(int * a, int * b){
    int tmp = *a;
    *a = *b;
    *b = tmp;
}

C++可以使用引用实现如下:

void swap(int & a, int & b){
    int tmp = a;
    a = b;
    b = tmp;
}

顺便记录另外两个很有意思的实现,不用中间变量tmp (面试中可能会问到):

void swap(int & a, int & b){
    a = a + b;
    b = a - b;
    a = a - b;
}

void swap(int & a, int & b){
    a = a ^ b;
    b = a ^ b;
    a = a ^ b;
}

      然后,言归正传,假如需要实现任意相同类型两数交换值应该怎么办呢ÿ
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值