Skip to Content
C++程序设计:原理与实践(基础篇)(原书第2版)
book

C++程序设计:原理与实践(基础篇)(原书第2版)

by 本贾尼 斯特劳斯特鲁普
August 2021
Intermediate to advanced
450 pages
9h 36m
Chinese
Pearson
Content preview from C++程序设计:原理与实践(基础篇)(原书第2版)

14.1 问题

到第13章结束时,vector已达到如下程度,我们可以:

·创建任意数量双精度浮点数的vector(vector类对象)。

·通过赋值与初始化拷贝vector对象。

·依赖vector自身在其离开作用域时正确地释放占用的内存空间。

·通过传统的下标操作访问vector的元素(既可以在赋值运算符左侧,也可以在右侧)。

已实现的这些特性都很好,也很有用,但为了达到我们所期望的高度(基于我们使用标准库vector的经验),我们需要解决下面三个问题:

·如何改变vector对象的大小(改变元素数量)?

·如何捕获并报告越界的vector元素访问?

·如何用参数指定vector元素的类型?

例如,如何定义vector使得下面的代码是合法的:

显然,令vector支持上述操作是十分有用的,但为什么从编程角度它们也很重要呢?对于想学习有用的编程技术以备后用的人来说,为什么它们很有趣呢?我们正在利用两方面的灵活性。我们有一个单一实体vector,可以改变它的两方面属性:

·元素的数量;

·元素的类型。

这种可变性是最根本的非常有用的特性。在日常生活中,我们总是要收集数据。看看我的桌子,我看见了一堆银行对账单、信用卡账单以及电话话费单。而这些东西本质上是一系列的各种类型的数据信息的集合:主要是字符串以及数值。在我的面前是一部电话,它记录了联系人的姓名与电话号码。在房间的书架上,满是书籍。我们的程序也是相似的:程序中有包含各种不同类型元素的容器。有很多不同种类的容器可供我们使用(vector仅仅是最常用的一种),它们能存储诸如电话号码、姓名、交易额以及文档等信息。本质上来说,我桌子上和房间里的所有例子可以由某个计算机程序进行表示。明显的一个例外是电话:它本身就是一台计算机,当我们查找号码时,实际上看到的是一个程序的输出,就和我们现在编写的程序一样。实际上,这些号码可能被很好地保存在一个vector<Number>中。 ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

C++语言导学(原书第2版)

C++语言导学(原书第2版)

本贾尼 斯特劳斯特鲁普
管理Kubernetes

管理Kubernetes

Brendan Burns, Craig Tracey
Go程序设计语言

Go程序设计语言

艾伦A. A.多诺万, 布莱恩W. 柯尼汉

Publisher Resources

ISBN: 9787111562252