0%

《ppp》读书笔记

类接口:保持接口的最小化

p207

当我们试图最小化类接口时(在保证完整性的前提下),不得不忽略大量有用的操作。如果一个函数可以简单、优美、高效地实现为一个独立函数时(即实现为非成员函数),就应该将它的实现放在类外。采用这种方式,函数中的错误就不会直接破坏类对象中的数据。p213

如何创建自己的 vector

预留空间 和 std::allocator

注意,我们并不对预留空间中的元素进行初始化。 p329

我们需要处理非常尴尬的情况:数据结构同时包含已初始化数据和未初始化数据。p341

因为内置的数值类型都是小对象,所以可以一律初始化,无需在意开销。但对于自定义类型,初始化要有的放矢。

TODO 还是要自己手动写出 tnie::vector 才行

std::allocator 主要涉及 new/delete 函数和操作符

new operator/delete operator就是new和delete操作符,而operator new/operator delete是函数。

概念

p337

Binary_predicate<P,T,U>():我们可以用两个类型分别为 T 和 U 的实参调用 P,得到一个布尔结果。
Binary_predicate<B,T,T>(): 我们可以用 B 对一个 T 和一个 U 执行一个操作。

这两者的区别在哪?

理解 std::function

传参时使用传值方式。原因是什么?

用户界面的选择

p161

  • 使用控制台输入/输出:如果需要图形输出,我们可以使用一个图形显示库,不需要对我们的程序设计风格进行明显的修改。
  • 使用图形用户界面(GUI)库:与图形显示库(只输出)是不同的

widget 概念

构件?

未读章节

1-4 前四章
15 容器和迭代器
16 算法和映射
20 绘制函数图和数据图
23 文本处理
24 数值计算
25 嵌入式系统程序设计
27 C 语言
附录