15.9 调整内置数组达到STL版本的功能
2023-03-14 10:22:46 时间
15.9 调整内置数组达到STL版本的功能
我们之前反复指出内置数组的不足之处:它们动不动就会隐式转换成指针,它们不能通过赋值操作进行拷贝,它们不知道自己的大小(见13.6.2节),等等。我们也指出了它们最大的优点:它们近乎完美地利用了物理内存。
为了综合二者之长,我们可以创建一个具有数组优点而没有其不足的array容器。array的一个版本已经作为技术报告的一部分引入C++标准中。由于技术报告中的特性并不要求所有C++实现都必须包含,因此你所使用的实现可能并不包含array。但其思路是简单有用的:
这个定义并不完整,也不完全符合C++标准,但可展示设计思想。如果你使用的C++实现并未提供标准array,它也可提供一个有用的定义。如果C++实现提供了标准array,它应该在<array>中。注意由于array<T, N>“知道”它的大小为N,我们可以提供(我们也确实提供了)赋值==、!=等操作,就像vector一样。
作为一个示例,我们把array和15.4.2节中STL版high()结合起来使用:
注意当我们编写high()时,并没有考虑array。之所以high()可以与array一起使用是因为这二者都是按照标准的习惯进行定义的。
相关文章
- iOS9 collectionView新特性
- 小企业开始采用大数据的4个步骤
- 面向过程,面向对象,函数式对同一个问题的思考方式
- 企业现代化改造基础设施,应对GDPR带来的挑战
- 行动贝果结合人工智能技术打造智能分析引擎
- Cookie安全大辩论总结
- TalkingData:全新战略布局,重塑数据智能
- 优秀开发者的最缺的技能不是开发技术
- 数据科学正从这七个方向颠覆金融界
- 给自私自利程序员的10大职业谏言
- 安卓开发笔记——探索EventBus
- 数据科学求职建议:掌握5种类型的数据科学项目
- 为什么 Laravel 会成为最成功的 PHP 框架?
- 攻关克难:大数据系统中的预测技术
- Rogue Wave 收购 Zend,争夺 PHP 网页开发市场
- 大数据战略需要数据中心基础架构作出的改变有哪些?
- 下次老板让你重构系统,让他看看这篇文章
- 适用于小型企业的9个大数据解决方案
- PHP 之 FastCGI 与 mod_php 详解
- 程序员提升效率的十八大法则