一.在函数模板中使用非类型参数

#include <iostream>
using namespace std; template<class T> void Swap(T &a, T &b); //模板①:交换基本类型的值
template<typename T, unsigned N> void Swap(T (&a)[N], T (&b)[N]); //模板②:交换两个数组 template<typename T, unsigned N> void printArray(T (&arr)[N]); //打印数组元素 int main(){
//交换基本类型的值
int m = , n = ;
Swap(m, n); //匹配模板①
cout<<m<<", "<<n<<endl; //交换两个数组
int a[] = { , , , , };
int b[] = { , , , , };
Swap(a, b); //匹配模板②
printArray(a);
printArray(b); return ;
} template<class T> void Swap(T &a, T &b){
T temp = a;
a = b;
b = temp;
} template<typename T, unsigned N> void Swap(T (&a)[N], T (&b)[N]){
T temp;
for(int i=; i<N; i++){
temp = a[i];
a[i] = b[i];
b[i] = temp;
}
} template<typename T, unsigned N> void printArray(T (&arr)[N]){
for(int i=; i<N; i++){
if(i == N-){
cout<<arr[i]<<endl;
}else{
cout<<arr[i]<<", ";
}
}
}

运行结果:

99, 10
10, 20, 30, 40, 50
1, 2, 3, 4, 5

最新文章

  1. Visual Studio Emulator for Android 初体验
  2. css-css权威指南学习笔记6
  3. 东大OJ-Prim算法
  4. 显示HTML文本
  5. 新闻类App使用的组件
  6. Codeforces 235E Number Challenge
  7. Linux 定时执行shell脚本_crontab
  8. PixelFormat 图像颜色的数据格式
  9. docker基于 aufs 文件系统
  10. Windows API 之 GetModuleHandle
  11. Hackers&#39; Crackdown UVA - 11825 (状压dp)
  12. Chapter 4 Invitations——15
  13. soapui的简单使用
  14. C#HTTP请求之POST请求和GET请求
  15. (20)The most mysterious star in the universe
  16. 大数据的常用算法(分类、回归分析、聚类、关联规则、神经网络方法、web数据挖掘)
  17. POJ 1159 Palindrome(区间DP/最长公共子序列+滚动数组)
  18. cocos2d-x Vector 使用心得
  19. YAML文件格式入门
  20. The Ugly Duckling

热门文章

  1. log4j设置,以及中文乱码,通过过滤器输出指定级别的日志,或者指定级别范围的日志
  2. Python程序员技能表—446家知名企业的Py招聘信息(转载)
  3. 【License】一张图该诉你各种License的含义?
  4. 转:超实用的IOS 9人机界面指南(1):UI设计基础 (腾讯力作)
  5. Codeforces 112A-Petya and Strings(实现)
  6. [转]mysql 常用命令集锦[绝对精华]
  7. P2P网络借贷系统-核心功能-用户投标-业务解说
  8. codeforces C. Diverse Permutation
  9. ZOJ 2604 Little Brackets DP
  10. SugarCE问题点记录