首页 > 网络技术/ 正文
今天要说的是C++使用可变参数的方式,包括std::initializer_list模板类、可变参数模板。
std::initializer_list()
是C++11新标准引入的初始化的列表,是一个模板类,可通过{...}形式传入并构造,这里介绍使用可变参数的情况:
#include
#include
#include
using std::string;
using std::cout;
using std::endl;
templatetypename T> using initializer_list = std::initializer_list;
void func(initializer_listconst string> L)
{
cout
for (auto a = L.begin(); a != L.end(); ++a)
{
cout " ";
}
cout
}
int main()
{
func({"123","asd","zmh"});
return 0;
}
有个特点是初始化列表存储的类型是固定的,如果传入不可支持类型转换则编译错误
可变参数模板
可变模板参数是C++11新标准引入的,是可接收可变数目参数模板的模板函数和模板类,可变数目的参数是参数包:模板参数包(template)、函数参数包(T... type),与初始化列表不同的是可以接收不同类型的参数,但由于是模板则不支持分离编译,且用法较复杂,这里介绍可变参数模板的模板函数:
#include
using std::cout;
using std::endl;
using std::string;
template typename T>
void func(const string &s1,const T &s2)
{
cout " "
}
template typename... T>
void func(const string &s, const T&... t)
{
cout sizeof...(t)
cout " ";
func(t...);
}
#include "a.h"
int main()
{
func("123","asd","zmh");
return 0;
}
此处实参可以不使用{... , ... , ...}方式传入。
可变参数模板有另一个主要用处,可以用于模板转发。
- 上一篇:国内首个CTFcrack框架开发流程
- 下一篇:郑州网络工程师培训学校哪家好呢?
更多大学生毕业了不好找工作怎么办,郑州北大青鸟职业IT教育怎么样,初中生学习不好毕业后能学什么手艺呢,郑州零基础软件开发培训学校哪家好,郑州java培训的it培训机构,郑州软件编程去哪个学校学比较好相关文章
- 郑州有什么好的网站制作培训班吗
- 做网络工程师选择Cisco网络培训可以吗
- 快速学编程的五大方法
- 网络信息安全培训?
- 郑州专业网页设计培训学校
- 北大青鸟seo培训
- 信息安全就业前景好不好?
- 什么技术人才最紧缺
- 找回被删除的桌面回收站图标
- 电脑知识要怎么学习
- 计算机专业就业前景好不好
- 笔记本待机时怎么设置才能不断网
- 计算机软件工程师分为几个等级
- 学了数据库能从事哪些工作?
- 本地连接图标无缘无故的消失了怎么办?
- 大学真的能让你改变命运吗?
- 职场人转行跳槽学门什么手艺最棒呢?
- 郑州哪里有网络营销培训学校教的怎么样呀?
- 郑州的计算机学校能学到真正技术的学校?
- 现在初中毕业的男孩女孩学什么技术好?
- 女孩子学什么专业技术能赚钱养活自己呢?
- 河南的90后学生学门什么样的专业技术好?
- 郑州现在学网络工程师专业好点的学校?
- 掌握局域网入侵教程的步骤有效防止黑客攻击
- 郑州计算机学校培训学校哪家比较不错呢?
- 现在各行业不景气学门什么技术好呢
- 郑州电脑学校软件工程专业
- 郑州计算机java专业学校
- 郑州软件编程培训选择什么专业好
- 许昌java培训在哪里
- 搜索
-
- 热门标签