博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
类型与非类型模板函数
阅读量:4695 次
发布时间:2019-06-09

本文共 1047 字,大约阅读时间需要 3 分钟。

在函数模板的一对<>中可以包括两种类型的参数

类型模板参数和非类型模板参数
类型模板参数指用typename or class 限定的参数,可将其
视为类型说明符
非类型模板参数是用确定数据类型指定的参数,与普通函数
形参定义形式差不多,接下来用选择排序来体现这两种
数组可以是任意类型,用类型参数设定
但数组大小是整数类型,用非类型参数指定

1 #include
2 using namespace std; 3 template
//类型参数,非类型参数 4 void Sort(T a[n]) 5 { 6 for(int i = 0;i < n;i++) 7 { 8 int p; 9 for(int j = i;j < n;j++)10 if(a[p] > a[j])11 p = j;12 int t = a[i];13 a[i] = a[p];14 a[p] = t;15 }16 }17 template
18 void display(T& a,int n)19 {20 for(int i = 0;i < n;i++)21 cout << a[i] << " ";22 cout << endl;23 }24 25 int main()26 {27 int m = 7;28 29 int a[] = {
3,2,1,5,7,4,6};30 char b[] = {
'a','c','b','d','h','f','e','g'};31 //sort
(a);错误因为m是变量,非类型参数必须是确定值32 Sort
(a);33 Sort
(b);34 display(a, m);//正确m对应普通函数的形参35 display(b, 8);36 return 0;37 }

 

转载于:https://www.cnblogs.com/mch5201314/p/11512200.html

你可能感兴趣的文章
QPushButton 控制两种状态
查看>>
一点小基础
查看>>
PHP 自动加载类 __autoload() 方法
查看>>
JDK中的Timer和TimerTask详解(zhuan)
查看>>
【python练习】ATM&购物商城程序
查看>>
nginx 日志问题(\x22)
查看>>
装饰器、迭代器、生成器
查看>>
类对象作为类成员
查看>>
面向对象和面向过程的区别及优劣对比详解
查看>>
const与指针
查看>>
thsi指针的一些用法及作用
查看>>
c++友元
查看>>
c++运算符重载
查看>>
一元运算符重载
查看>>
Windows 远程栈溢出挖掘
查看>>
(网页)the server responded with a status of 403 (Forbidden)
查看>>
葡萄城报表介绍:Java 报表
查看>>
android 通知消息一
查看>>
UNET学习笔记2 - 高级API(HLAPI)
查看>>
腾讯编程马拉松2012第一题
查看>>