《C++编程风格(修订版)》——3.6 模板

简介:

本节书摘来自异步社区出版社《C++编程风格(修订版)》一书中的第3章,第3.6节,作者:【美】Tom Cargill,更多章节内容可以访问云栖社区“异步社区”公众号查看。

3.6 模板

C++编程风格(修订版)
IntStack和CharStack的共同属性可以用另一种不同的方式来表达,即C++的模板机制。模板也被称之为参数化类型,在程序清单3.5中给出了堆栈的模板。

程序清单3.5 Stack模板
image
image

Stack模板定义了一组类。在使用Stack模板来声明一个对象时,必须同时提供一个类型来替换模板声明中的类型T。例如,
image

在上面的语句中,声明了一个对象stackOfChar,这个对象是一个存储10个char类型值的堆栈,而在下面的语句中:
image

声明了一个对象stackOfInt,这个对象是一个存储20个int类型值的堆栈。函数push()中的参数类型和pop()的返回类型也都是T。

将模板增加到C++的主要推动力是因为模板可以支持通用的集合类。我们不仅可以创建整数类型的堆栈和字符类型的堆栈,还可以创建浮点类型的堆栈、char指针类型的堆栈等。

用模板来实例化的对象与那些使用IntStack和CharStack来实例化的对象在行为上只存在细微的差别。在最初的CharStack构造函数中,可以带有第二个参数,用于指定将要压入栈中的字符串。但在IntStack的构造函数中并没有这个参数。因此,如果使用模板来同时表示这两个类,那么这个差别将无法表达出来。

相关文章
|
14天前
|
编译器 C语言 C++
c++的学习之路:19、模板
c++的学习之路:19、模板
32 0
|
29天前
|
存储 C++ 容器
C++STL(标准模板库)处理学习应用案例
【4月更文挑战第8天】使用C++ STL,通过`std:vector`存储整数数组 `{5, 3, 1, 4, 2}`,然后利用`std::sort`进行排序,输出排序后序列:`std:vector<int> numbers; numbers = {5, 3, 1, 4, 2}; std:sort(numbers.begin(), numbers.end()); for (int number : numbers) { std::cout << number << " "; }`
21 2
|
29天前
|
编译器 C++
【C++初阶】13. 模板进阶
【C++初阶】13. 模板进阶
25 2
|
1月前
|
C++
C++当类模板遇到static
C++当类模板遇到static
|
1月前
|
算法 C++ 容器
C++中模板函数以及类模板的示例(template)
C++中模板函数以及类模板的示例(template)
|
2月前
|
编译器 C++
C++入门指南:10分钟带你快速了解模板究竟是什么(建议收藏!!)
C++入门指南:10分钟带你快速了解模板究竟是什么(建议收藏!!)
34 0
|
2月前
|
编译器 C++
【C++练级之路】【Lv.11】模板(你真的了解模板特化和分离编译吗?)
【C++练级之路】【Lv.11】模板(你真的了解模板特化和分离编译吗?)
|
6天前
|
C++
【期末不挂科-C++考前速过系列P6】大二C++实验作业-模板(4道代码题)【解析,注释】
【期末不挂科-C++考前速过系列P6】大二C++实验作业-模板(4道代码题)【解析,注释】
【期末不挂科-C++考前速过系列P6】大二C++实验作业-模板(4道代码题)【解析,注释】
|
6天前
|
存储 算法 C++
详解C++中的STL(标准模板库)容器
【4月更文挑战第30天】C++ STL容器包括序列容器(如`vector`、`list`、`deque`、`forward_list`、`array`和`string`)、关联容器(如`set`、`multiset`、`map`和`multimap`)和容器适配器(如`stack`、`queue`和`priority_queue`)。它们为动态数组、链表、栈、队列、集合和映射等数据结构提供了高效实现。选择合适的容器类型可优化性能,满足不同编程需求。
|
8天前
|
运维 Serverless Go
Serverless 应用引擎产品使用之在阿里云函数计算中c++模板,将编译好的C++程序放进去部署如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
10 1