08 C++11中的variadic template、auto和for基本用法

1、引言

C++11中增加了不少新的特性,本篇主要介绍variadic templates(数量不定的模板参数)、auto和ranged-base for的用法。

2、variadic templates

1)示例

void print(){

} //#1

template <typename T, typename... Types>
void print(const T& firstArg, const Types&... args){
	std::cout << firstArg << std::endl;
	print(args...);
} #2
注意点:

a、本例是通过数量不定的模板参数。设计print()打印函数;

b、使用固定格式typename... 来定义数量不定的模板参数;

c、在#2设计中,第一个参数firstArg为传入的第一个值,后面参数为其它的参数包;

d、使用递归的方式进行打印输出,格式也为固定格式(args...);

e、当print(args...)中的args为空时,执行#1的print(),此时函数执行完毕。

2)主程序使用

int _tmain(int argc, _TCHAR* argv[])
{
	print(10, "yes", 'a');
	return 0;
}
/*输出结果:
	10
	yes
	a
*/
说明:主程序会依次输出打印结果。

3、auto的用法

auto的用法类似于C#中的var,匿名变量。

1)示例

int _tmain(int argc, _TCHAR* argv[])
{
	int a = 10;
	auto b = a + 5;
	std::cout << b << std::endl;
	return 0;
}
/*输出结果:
	15
*/
注意点:

a、程序中b变量类型编译器会根据操作数自动匹配;

b、使用auto变量声明,必须要赋初值。

4、ranged-base for

这是C++11中对for循环的一种新用法。

1)使用格式

for (del : coll){
	statement;
}
说明:coll为容器,在遍历过程中,容器中的值会以值或引用传给del,如下图:


2)示例

int _tmain(int argc, _TCHAR* argv[])
{
	for (int i : {1, 2, 3, 4, 5}){
		std::cout << i << " ";
	}
	return 0;
}
/*输出结果:
	1 2 3 4 5
*/




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值