c++函数模板
来源:互联网 发布:linux 安装jdk gz 编辑:程序博客网 时间:2024/06/06 07:30
我们要找出一个数组里面最大的数,可以这样
int getmax(int *p, int n){int max(0);max = p[0];for (int i = 1; i < n; i++){if (max < p[i])//确保max>=p[i]{max = p[i];}}return max;}double getmax(double *p, int n){double max(0);max = p[0];for (int i = 1; i < n; i++){if (max < p[i])//确保max>=p[i]{max = p[i];}}return max;}
template<typename T> T MAX(T*p, const int n){T maxdata(p[0]);for (int i = 1; i < n; i++){if (maxdata < p[i]){maxdata = p[i];}}return maxdata;}void main(){double a[10] = { 1,2,3,4,98,77};int b[10] = { 1,2,3,4,98,77,33,567,999,87 };cout << MAX(a, 10) << endl;cout << MAX(b, 10) << endl;system("pause");}
可变参数的函数模板,需要加" #include<cstdarg> " 头文件
#include<stdlib.h>#include<iostream>#include<cstdarg>using namespace std;template<typename NT>NT sum(int count,NT data1, ...){va_list arg_ptr;//参数列表的指针va_start(arg_ptr, count);//限定从count开始NT sumres(0);for (int i = 0; i < count; i++){sumres += va_arg(arg_ptr,NT);}va_end(arg_ptr);return sumres;}void main(){std::cout << sum(3,1,2,3) << std::endl;system("pause");}
注意,可变参数的函数模板,形参列表里有三个点。
0 0
- 【c/c++】函数模板和模板函数
- C/C++ 函数模板
- c++:函数模板
- 【C++】函数模板
- 【c++】函数模板
- C语言函数模板
- C++:函数模板
- 【C++】模板函数总结!!!
- C/C++:函数模板与类模板
- [C/C++]模板函数与模板类
- 学习C++模板---模板函数
- Linux C/C++ 模板:函数模板
- C++,template,类模板和函数模板
- C++:函数模板、类模板及其特化
- C++---函数模板与类模板
- C++_函数模板基础知识
- C语言实现函数模板
- C++_函数模板基础知识
- Valid Sudoku
- Mongodb
- 数据库组合查询练习1
- 在spring mvc中实现JSR303验证并将验证结果传回给视图层
- java的File
- c++函数模板
- MVC模式
- 刷题之路----根据前序遍历和中序遍历或者后序遍历和中序遍历重建二叉树
- HDU 4542 小明系列故事——未知剩余系(反素数+最小的n使得n的约数为n-k(k已知))
- 二叉树层次遍历
- C++ set容器迭代器
- 堆排序java实现
- 如何开启ubuntu的SSH服务
- iOS定位从 “始终”定位,改变成“使用期间”定位