15.9 调整内置数组达到STL版本的功能

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一起使用是因为这二者都是按照标准的习惯进行定义的。

时间: 2024-10-25 19:27:32

15.9 调整内置数组达到STL版本的功能的相关文章

C++程序设计:原理与实践(进阶篇)15.9 调整内置数组达到STL版本的功能

15.9 调整内置数组达到STL版本的功能 我们之前反复指出内置数组的不足之处:它们动不动就会隐式转换成指针,它们不能通过赋值操作进行拷贝,它们不知道自己的大小(见13.6.2节),等等.我们也指出了它们最大的优点:它们近乎完美地利用了物理内存. 为了综合二者之长,我们可以创建一个具有数组优点而没有其不足的array容器.array的一个版本已经作为技术报告的一部分引入C++标准中.由于技术报告中的特性并不要求所有C++实现都必须包含,因此你所使用的实现可能并不包含array.但其思路是简单有用

C++程序设计:原理与实践(进阶篇)15.8 调整vector类达到STL版本的功能

15.8 调整vector类达到STL版本的功能 在15.5节中为vector增加了begin().end()和类型别名后,现在只差insert()和erase()就接近我们设计一个std::vector的近似版本的目标了:   我们还是使用指向元素类型的指针T*作为迭代器的类型,这是最简单的方法.我们将边界检查迭代器的实现留作练习(习题18). 人们通常不会为元素连续存储的数据类型(如vector)提供列表操作,如insert()或erase().但insert()和erase()这样的列表操

新亚马逊平板可花费15美元取消内置广告

亚马逊上周发布的新一代Kindle Fire平板电脑新浪科技讯 北京时间9月10日早间消息,亚马逊上周末表示,新一代Kindle Fire平板电脑的购买者只要多花15美元,就可以关闭内置于这几款平板电脑内的广告.亚马逊上周四推出了屏幕尺寸更大的Kindle Fire平板电脑,价格最低159,最高599美元,试图凭借价格和内容优势挑战平板电脑市场的霸主苹果iPad.亚马逊称,新一代Kindle Fire将内置"特惠商品"(special offers)广告,以帮助降低产品价格.当屏幕被锁

Windows 7内置的IE浏览器版本是?

  众所周知,目前微软Internet Explorer最新的版本是IE8正式版,而Windows7内置的浏览器也是IE8,不过并不是和普通的IE8正式版一样,它的版本号与你使用的 Windows7系统具体版本号一致,比如你在使用的是Build7068版的Windows7(介于Beta和RC版之间的测试版),那么你的IE8浏览器的版本号就是8.0.7068.0. IE浏览器的关于画面 虽然Windows7内置的IE8不是正式版,但是其功能上基本与Vista和XP上的相同,都支持隐私浏览器.网络加

iPhone 6内置了全新的气压传感器 新功能曝光

之前就曾有消息称,苹果会为iPhone配备更多的传感器,事实也确实如此. 今天早些时候,有开发者从iOS&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp;8中发现了iPhone 6的一些蛛丝马迹,其也证明了之前传闻的真实性. 从代码中可以看出,iPhone 6内置了全新的传感器:气压传感器,该功能已经在不少安卓手机上,其通常用来测量海拔高度. 此外,该功能还能可以收集天气信息,即传感器分析空气压力确定是否要下雨或晴天

百度Hi推出3.0版本 内置游戏和贴吧等功能

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 3月4日消息,百度近日推出Hi3.0新版,集合了游戏功能.聊天.游戏平台.i贴吧互动.空间提醒等功能,在向网络休闲平台演变. 据悉,百度Hi除了主界面以外,聊天对话框中同样集成了游戏大厅入口,直接点击即可选择单人或多人游戏.目前百度Hi内置"联众游戏"平台,用户可以选择斗地主.麻将等游戏. 百度Hi 3.0也实现了将个性签

jsp-JSTL 访问内置对象问题

问题描述 JSTL 访问内置对象问题 An error occurred at line: 14 in the jsp file: /index.jsp The method proprietaryEvaluate(String, Class, PageContext, null) is undefined for the type PageContextImpl 11: hhh 12: 13: 14: hello!${pageContext.request.contextPath} 15: 1

jsp内置对象入门(7) pageContext对象详解

我们已经学完了jsp内置对象的最主要的四种对象----page.request.response.session和application,在内置对象中有一个pageContext也是很重要的,因为它在某些程度上是全能的,因为它的一些方法能够代替四种内置对象的方法. pageContext对象简介 pageContext对象是javax.servlet.jsp.PageContext类的实例,主要表示的是一个jsp页面的上下文,此类中除了之前讲解过的属性操作之外,还定义了以下的一些方法,正是这些方

新日本无线推出内置MOSFET降压型开关稳压器NJW1933

日本无线株式会社(总部:东京都中央区 代表取缔役社长:小仓 良)开发出了一款600mA, 500kHz的小型封装降压型开关稳压器 NJW1933,该稳压器最适于逆变器.程控器等产业设备电源及汽车电子配件.此产品已经开始进入生产阶段. NJW1933 降压型开关稳压器有内置MOSFET,输入电压范围很宽从4.5V到40V.因为内置有电流控制方式的相位补偿电路,所以最少限度的外接部件就能够实现降压应用.并且,补偿电路的最佳化能够使用外接陶瓷电容器,工作频率很高能够使用小型电感. NJW1933 采用