Skip to Main Content
C++程序设计语言(第4部分:标准库)(原书第4版)
book

C++程序设计语言(第4部分:标准库)(原书第4版)

by 本贾尼 斯特劳斯特鲁普
August 2021
Intermediate to advanced content levelIntermediate to advanced
450 pages
6h 57m
Chinese
Pearson
Content preview from C++程序设计语言(第4部分:标准库)(原书第4版)

36.3 字符串

在<string>中,标准库提供了通用字符串模板basic_string:

元素(字符串)是连续存储的,这样底层输入操作可以安全地将basic_string的字符序列作为源或目的。

basic_string提供了强保证(见13.2节):若一个basic_string操作抛出了异常,则字符串保持不变。

对一些标准字符类型,标准库已经提供了相应的特例化版本:

所有这些字符串都提供很多操作。

与容器类似(见第31章),basic_string的设计目的不是为了用作基类,而且它提供了移动语义,因此能高效地以传值方式由函数返回。

36.3.1 string与C风格字符串

我假定读者通过本书中的很多示例已经较为熟悉string了,因此本节从一些例子开始,它们对比了string的使用和C风格字符串的使用(见43.4节),后者在主要熟悉C和C风格C++的程序员中很流行。

考虑通过连接用户标识符和域名来构造一个电子邮件地址:

这个例子很简单,接下来考虑一个很正确的C风格版本。一个C风格的字符串就是一个指向以零结尾的字符数组的指针。用户控制内存分配并负责释放: ...

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

Java并发编程实战

Java并发编程实战

Brian Goetz, Tim Peierls
C++语言导学(原书第2版)

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

本贾尼 斯特劳斯特鲁普
Go程序设计语言

Go程序设计语言

艾伦A. A.多诺万, 布莱恩W. 柯尼汉
可编程网络自动化

可编程网络自动化

Jason Edelman, Scott S. Lowe, Matt Oswalt

Publisher Resources

ISBN: 9787111544395