第 2 章《简单动态字符串》勘误 ================================== 14 页 ----------- 《惰性空间释放》一节对 ``sdstrim`` 函数作用的描述有误, 正确的描述应该为: 举个例子, ``sdstrim`` 函数接受一个 SDS 和一个 C 字符串作为参数, **从 SDS 左右两端分别移除所有在 C 字符串中出现过的字符**\ 。 其中加粗部分为改正后的内容。 因为这个错误, 图 2-14 也要进行相应的改正, 以下是改正后的图 2-14 。 .. graphviz:: digraph { label = "\n 图 2-14 执行 sdstrim 之前的 SDS"; rankdir = LR; node [shape = record]; // sdshdr [label = "sdshdr | free \n 0 | len \n 11 | buf"]; buf [label = " { 'X' | 'Y' | 'X' | 'X' | 'Y' | 'a' | 'b' | 'c' | 'X' | 'Y' | 'Y' | '\\0' } "]; // sdshdr:buf -> buf; } 感谢 `xiaolou `_ 反馈这个错误。 17 页 ----------- 表 2-2 中给出的 ``sdsfree`` 函数的复杂度有误, 它的复杂度应该是 O(1) 才对, 以下是修正后的内容: +-------------------+---------------------------------------+-------------------------------------------------------+ | 函数 | 作用 | 时间复杂度 | +===================+=======================================+=======================================================+ | ``sdsfree`` | 释放给定的 SDS 。 | :math:`O(1)` | +-------------------+---------------------------------------+-------------------------------------------------------+ 感谢 `Timothy Qiu `_ 反馈这个问题。 18 页 ----------- 表 2-2 中对 ``sdstrim`` 的描述和时间复杂度都有误, 以下是修正后的内容: +-------------------+---------------------------------------+-------------------------------------------------------+ | 函数 | 作用 | 时间复杂度 | +===================+=======================================+=======================================================+ | ``sdstrim`` | 接受一个 SDS 和一个 C 字符串作为参数,| :math:`O(M*N)` , ``M`` 为 SDS 的长度, | | | 从 SDS 左右两端分别移除所有在 C | ``N`` 为给定 C 字符串的长度。 | | | 字符串中出现过的字符。 | | +-------------------+---------------------------------------+-------------------------------------------------------+ 感谢 `xiaolou `_ 、袁文清 反馈这个错误。