各图书勘误

<设计模式 --- 可复用面向对象软件的基础>

p.221 

"7. 效果 -> 3) 增加新的...." 该段中倒数第二行, "而你不断地增加操作修改算法,...". 应该是 "或".

 

<算法导论 第二版 中文版>

p.168
   图 13-4 中, c) 情况的 1, 5, 8 结点是黑色, z所在结点标号为 2, 且为红色. 
p.181
   图 14-1 中, 根节点的儿子(左孩子)应该为17/12.


<Perl 语言入门>
p.185
    
 
    use File::Basename 后面应该有个 ;
p.298
   
  '$pos = ?1' 应改成 '$pos = -1'
  一下 '?1' 同上, 都应改为 '-1' 


<精通正则表达式> 第三版 中文版
   原文: '请务必区分 (?>M)+ 和 (?M+). 前者放弃 M 创建的备用转台, 因为 M 不会制造任何状态, 所以这样做没什么价值. 而后者放弃 M+ 创造的未使用状态, 这样做显然有意义. ' (p.173)
   修改: 红色粗体部分 '(?M+)' 应修改为 '(?>M+)'.
p.316
在本页中下部分有个表格, 其中第一行的第 3, 4 列为:
    匹配成功时的 pop 值                                           匹配失败时的 pop 值 
应该为:
        匹配成功时的 pos 值                                           匹配失败时的 pos 值 


<80x86 Assembly Language and Computer Architecture>

   原文: Since the symbol string actually references its address, the expresssion string - $ is the length of string... (p.256)
   应为: Since the symbol string actually references its address, the expresssion $ - string is the length of string... (p.256) 


<Linux/UNIX 网络编程>

p.4
原文: 因受 16 位限制, 数据报文最长为 65536 (2^16) 字节, ...
应为: 因受 16 位限制, 数据报文最长为 65535 (2^16 - 1) 字节, ...  
解释: 16 位二进制从 0 开始, 因此最高表示为 2^16 - 1.
p.32
原文: 
#include <strings.h>

应为:

#include <string.h> 

 

<C++ 沉思录> 中文版

错误有些多, 平均 1~3个/10 页. 当时没能上网, 无法记录.

 

 

<算法竞赛入门经典>

p.220 中间位置:
... 对时不能简单地用 fc 命令比较文本内容, ...
... 对时不能简单地用 fc 命令比较文本内容, ... 

 

<C++ 标准程序库 --- 自修教程与参考手册>

p.344

 

p.350

 

p.572

 

p.608

 

p.621

 

<七周七语言 --- 理解多种编程范型>

p.102

第一个字是 '贱'. (贱谍)

应该是 '间'. (间谍)

 

<程序员的数学>

p.64

课前对话中, 

老师: "能被 2 整除的是数"

改为:

老师: "能被 2 整除的是数"

 

<深入理解 C++11: C++11 新特性解析与应用>

p.48

红色线处: 1 的类型在 vc 12 以及 g++ 4.7.2 中, 都是 int 而非 const int.

粉色线处: 应修改为 `void TempFun<int>(int)`

p. 65

3-11 代码如下

实际上, 调用 `InitReset()` 后, `type` 的值是 2, 并非文中所述的 4.

p.68

代码 3-16:

根据原文的语境, 不应该有红线划去的部分.

p.77

第四行: 相对地, 非常量左值只能接受非常量左值对其进行初始化.

修改为: 相对地, 非常量左值引用只能接受非常量左值对其进行初始化.

p.84

应修改为 copy.

p.92

关于 explicit operator XXX() 的解释实在让人无法理解, 而且解释是错误的, 误导读者. 原文:

 

实际应该是:

  如果我们把该方法用于代码清单 3-27 中, 可以发现我们预期的事情发生了, if (p) 可以通过编译, 因为 C++11 对 `if, 循环等逻辑` 做了放宽处理, 也就是说, `if (p)` 等价于 `if (static_cast<bool>(p))`. 因此通过了编译, 并且符合我们的预期. 然而 `p + pd` 没有使用 static_cast 进行显示的转换, 因此 p 以及 pd 无法转换为 bool 参与运算, 导致了编译失败.  

p.132

第一段, 第 4 行: 而对于变量 m 和 n, 就变得非常有趣, 这里似乎是 auto 被替换成了 int, 所以 m 是一个 int * 指针类型, 而 n 只是一个 int 类型.

应改为: .... 这里似乎是 auto 被替换成了 int, 所以 m 是一个 const int * 指针类型, 而 n 是一个 const int 类型.

源代码为: `const auto *m = &x, n = 1;`.

p.142

文字第二行: ... 事实上, 规则 1 在 decltyp 类型推导中运用的最为广泛...

应改为: ... 事实上, 规则 1 在 decltype 类型推导中运用的最为广泛...

p.160

倒数第9 行: 这是由于 Visual C++ 总是使用符号类型作为枚举的底层实现, ...

应该为: 这是由于 Visual C++ 总是使用符号类型作为枚举的底层实现, ...

p.207

倒数第 5 行: 所以在多核心处理器上, 核心往往都有全套的寄存器来分别存储临时量, 而...

应改为: 所以在多核心处理器上, 每个核心往往都有全套的寄存器来分别存储临时量, 而...

p.291

条目 21: C++ 中 volatile 的对象不能作为隐式构造函数和隐式赋值函数的参数.

应该为: C++ 中 volatile 的对象不能作为默认构造函数和默认赋值函数的参数.

p.298

正文倒数第 3 行: 另外, ptr_fun 除了可以 ...., 此时返回值是 pointer_to_binary_function<Arg, Result>(f).

应该为: 另外, ptr_fun 除了可以 ...., 此时返回值是 pointer_to_unary_function<Arg, Result>(f).

posted @ 2011-05-26 09:23  walfud  阅读(733)  评论(0编辑  收藏  举报