08 C++11中的variadic template、auto和for基本用法(学自Boolean)
来源:互联网 发布:mac如何截取长图 编辑:程序博客网 时间:2024/06/16 17:13
1、引言
C++11中增加了不少新的特性,本篇主要介绍variadic templates(数量不定的模板参数)、auto和ranged-base for的用法。
2、variadic templates
1)示例
void print(){} //#1template <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;}/*输出结果:10yesa*/说明:主程序会依次输出打印结果。
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
- 08 C++11中的variadic template、auto和for基本用法(学自Boolean)
- 11 关于C++中的new和delete(学自Boolean)
- 03 C++中复合、委托和继承的基本用法(学自Boolean)
- 07 C++模板特化、模板偏特化和模板模板参数基本用法(学自Boolean)
- 09 C++Reference引用的用法(学自Boolean)
- C++11: variadic template
- 05 C++中智能指针point-like class和仿函数function-like的基本用法(学自Boolean)
- 06 C++中类、函数、成员模板基本用法(学自Boolean)
- 10 C++中的对象模型object model(学自Boolean)
- C语言11中的auto和decltype
- 29 x适配器ostream_iterator和istream_iterator(学自Boolean)
- 31 tuple和type trait用例(学自Boolean)
- Notes-7:variadic template
- C++11标准之variadic template (可变参数模板)
- C++11标准新增可变参数模板(variadic template)
- c++中的auto和for循环
- 介绍GNU C和C99标准中的可变参数宏(variadic macros)
- 介绍GNU C和C99标准中的可变参数宏(variadic macros)
- 2017双十一阿里技术汇总
- C语言实验——整数位
- Django-restframework34 Testing(测试)
- HBase 常用Shell命令
- PAT
- 08 C++11中的variadic template、auto和for基本用法(学自Boolean)
- 由于对必需的库\jdk1.7.0\jre\lib\rt.jar 具有一定的访问限制问题 解决方法
- mysql根据标签查询文章相似度
- Android framework学习笔记 -- Google tracing的研究
- GC原理及优化
- 2017 CCPC 哈尔滨 M ( hdu 6242) Geometry Problem (随机化 + 三角形外心)
- 1022. D进制的A+B (20)
- Test
- Django-restframework35 Settings