C++ Primer Plus(第六版)编程练习答案 第18章探讨C++新标准
发布时间
阅读量:
阅读量
本章所有编程练习的工程源码可在此处下载(点击此链接下载),供大家参考交流!
1. 下面是一个简短程序的一部分:
(……代码省略……)
请提供函数average_list(),让该程序变得完整。它应该是一个模板函数,其中的类型参数指定了用作函数参数的initializer_list模板的类型以及函数的返回类型。
本题的核心任务在于补全 main() 函数中缺失的 average_list() 函数实现。根据题目要求,该函数必须设计为一个泛型模板函数,其类型参数不仅用于定义 initializer_list 容器内元素的类型,同时也决定了函数最终返回值的类型。这种设计确保了函数能够处理各种基本数据类型,同时保持类型安全。
在实现逻辑上,我们需要定义一个名为 T 的模板参数。函数签名应接受一个 std::initializer_list<T> 类型的参数,以便接收任意数量的初始化列表元素。函数内部通过遍历该列表累加所有元素,最后除以元素总数得到平均值。由于 initializer_list 提供了 size() 方法,我们可以直接获取元素个数。需要注意的是,如果列表为空,应处理除零错误,但在本题简化场景中,我们假设输入非空。返回类型同样指定为 T,这样当传入整数列表时返回整数(或根据编译器优化可
全部评论 (0)
还没有任何评论哟~
