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版)

13.2 初始化

考虑我们在第12章结束时定义的vector:

这个定义很好,但如果我们希望用一组值初始化向量元素,而不是将它们初始化为默认值,会怎样呢?例如:

我们可以这样做,这比将元素初始化为默认值然后再将我们希望的值赋予它们的方式好得多:

与v1的初始化相比,v2的初始化冗长易错(我们在这段代码中就故意将元素数量弄错了)。如使用push_back(),我们就不必提及vector的大小:

但这种方法仍会产生很多重复代码,那么我们如何编写接受初始化器列表参数的构造函数呢?用{}限定的类型T元素的列表是以标准库类型initializer_list<T>对象(即T的列表)的形式呈现给程序员的,因此我们可以编写如下代码:

我们使用了标准库算法copy(见附录C.5.2)。它将前两个参数(在本例中是initializer_list的起始和结束位置)指定的元素序列拷贝到从第三个参数开始的元素序列(在本例中是从开始elem的vector的元素)中。 ...

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