26.5 — 局部模板特化

本课和下一课是为那些渴望更深入了解 C++ 模板的人提供的可选阅读材料。模板偏特化并不常用(但在特定情况下可能很有用)。在课程中,您学习了如何使用表达式参数来参数化模板类。我们来看看……

26.1 — 模板类

在上一章中,我们讨论了函数模板 (),它允许我们对函数进行泛化,以适用于许多不同的数据类型。虽然这是泛化编程的一个很好的开始,但它并不能解决我们所有的问题。让我们看一个例子……

11.6 — 函数模板

假设您想编写一个函数来计算两个数字中的最大值。您可以这样做: int max(int x, int y) { return (x < y) ? y : x; // 注意:我们使用 < 而不是 > 因为 std::max 使用 < } 虽然……

28.7 — 随机文件 I/O

文件指针 每个文件流类都包含一个文件指针,用于跟踪文件中的当前读/写位置。当从文件读取或写入文件时,读/写操作发生在文件指针的当前位置。默认情况下,当打开文件时……

28.6 — 基本文件 I/O

C++ 中的文件 I/O 与普通 I/O 非常相似(只增加了一些细微的复杂性)。C++ 中有 3 个基本的文件 I/O 类:ifstream(派生自 istream)、ofstream(派生自 ostream)和 fstream(派生自 iostream)。这些类分别用于文件输入、输出和输入/输出。要使用这些……

28.5 — 流状态和输入验证

ios_base 类包含几个状态标志,用于指示在使用流时可能发生的各种条件:尽管这些标志位于 ios_base 中,但由于 ios 是从 ios_base 派生的,并且 ios 比 ios_base 输入更少,因此它们通常通过 ios 访问(例如作为 std::ios::failbit)。ios 也……

28.4 — 字符串流类

到目前为止,您看到的所有 I/O 示例都写入了 cout 或从 cin 读取。然而,还有另一组类称为字符串流类,它们允许您使用熟悉的插入 (<<) 和提取 (>>) 运算符来处理字符串。与……类似