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

10.11.3 改变表示方法

为了使Month的>>能正常工作,我们需要提供一个方法,来读入月份的符号表示。相似地,我们将用符号表示提供匹配的写。一种冗长的表示方法是使用if语句:

这种方法不仅冗长,而且将月份名固化到了程序中。更好的方法是将月份名存入一个表中,使得即便不得不改变符号表示时,也无须改动主程序。我们决定用一个vector<string>来描述月份的符号表示,另外设计一个初始化函数和一个查找函数。

为了避免疑惑,C++标准库提供了一种简单的方法来完成相同的工作,参见16.6.1节中map<string.int>的相关内容。

当需要进行输出时,我们将面临一个逆问题。我们在内存中用一个整数表示月份,但输出时希望用符号表示形式。解决方案与输入基本相似,只是把string到int的映射表变为int到string的映射表:

好了,你是否真正阅读了全部代码和注释了呢?还是眼睛一眨就跳到末尾了?谨记学习编写高质量代码的最好途径就是阅读大量代码。不管你信不信,本例中我们使用的方法虽很简单,但在没有帮助的情况下领悟其精髓并不容易。读取数据是很基本的,正确编写输入循环(正确初始化用到的变量)是很基本的,转换表示方式也很基本。也就是说,你应该学会这些。唯一的问题是,你是否能学会很好地使用这些技术,以及是否在熬夜之前学会这些基本的技术。 ...

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