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.2.3 resize

实现了reserve()后,再为vector实现reszie()就很简单了。我们只需处理以下几种情况:

·新的大小大于已分配的空间。

·新的大小大于当前大小,但小于或等于已分配空间。

·新的大小等于当前大小。

·新的大小小于当前大小。

下面的代码展示了resize()的实现:

我们用reserve()处理困难的内存空间管理问题。代码中的循环将初始化新的元素(如果有的话)。

在本例中,我们没有显式地处理每一种情况,但你可以验证:在上述代码中,每一种情况均被正确地处理了。

试一试

如果我们需要证明上述resize()是否正确,那么需要考虑(并测试)哪些情况?当newsize==0时会怎样?当newsize==-77呢?

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