C++ Variadic template(可变长度参数函数)
2016-05-18 00:00
369 查看
Variadic template是c++11引入的新特性,能够用来实现可变参数长度的函数。http://www.cplusplus.com/articles/EhvU7k9E/
[code=plain]/* 递归解释省略参数时,如果只剩一个参数的时候调用该函数。*/ template <typename T1> std::vector<T1> parse(T1 t1) { std::vector<T1> ts; ts.push_back(t1); return ts; } /* 递归解释省略参数时,参数个数多于一个的时候调用该函数。*/ template <typename T1, typename... T> std::vector<T1> parse(T1 t1, T... _t) { std::vector<T1> ts; ts.push_back(t1); std::vector<T1> v = parse(_t...); for(auto each : v) { ts.push_back(each); } return ts; } /*模板类,能够根据任意个参数构造得到一个数组。*/ template <int N, typename... T> class keys { public: keys() {} keys(int k, T... _t) { std::vector<int> ks = parse(_t...); for(auto each : ks) { std::cout<<each<<std::endl; } } private: int *_keys; };
相关文章推荐
- 八种排序算法之-c实现
- c语言学习笔记9之switch语句
- C语言指针 和 学生宿舍管理系统
- C语言中预定义符 __FILE__, __LINE__, __FUNCTION__, __DATE__, __TIME__ 的使用
- C语言中的静态变量和普通变量的区别
- C++面向对象实验(五)
- C语言的指针、链表的原理和各类操作
- 2016/5/17 初识C++
- leetcode_c++:Search in Rotated Sorted Array(033)
- C++中getline函数用法(修正调试ok)
- 拓扑序列 C++实现
- 2013蓝桥决赛C/C++B组
- C++ Primer 第五版 练习 3.21,3.24
- 内存角度探寻C++面向对象 之 继承、多态
- 基于MySQL Connector/C++的数据库连接池
- C++ 运算符重载
- 单例模式-c++实现
- 库函数和系统调用
- 第8周 C语言及程序设计提高例程-31 编制自己的字符串函数
- c语言学生管理