修正半角标点符号

This commit is contained in:
kimw
2018-06-09 16:27:25 +00:00
parent a81bfabcdc
commit 7ebd75aeae
60 changed files with 132 additions and 132 deletions

View File

@@ -1,6 +1,6 @@
## 6.5. 示例: Bit数组
Go语言里的集合一般会用map[T]bool这种形式来表示T代表元素类型。集合用map类型来表示虽然非常灵活但我们可以以一种更好的形式来表示它。例如在数据流分析领域集合元素通常是一个非负整数集合会包含很多元素并且集合会经常进行并集、交集操作这种情况下bit数组会比map表现更加理想。(译注这里再补充一个例子比如我们执行一个http下载任务把文件按照16kb一块划分为很多块需要有一个全局变量来标识哪些块下载完成了这种时候也需要用到bit数组)
Go语言里的集合一般会用map[T]bool这种形式来表示T代表元素类型。集合用map类型来表示虽然非常灵活但我们可以以一种更好的形式来表示它。例如在数据流分析领域集合元素通常是一个非负整数集合会包含很多元素并且集合会经常进行并集、交集操作这种情况下bit数组会比map表现更加理想。译注这里再补充一个例子比如我们执行一个http下载任务把文件按照16kb一块划分为很多块需要有一个全局变量来标识哪些块下载完成了这种时候也需要用到bit数组。)
一个bit数组通常会用一个无符号数或者称之为“字”的slice来表示每一个元素的每一位都表示集合里的一个值。当集合的第i位被设置时我们才说这个集合包含元素i。下面的这个程序展示了一个简单的bit数组类型并且实现了三个函数来对这个bit数组来进行操作
@@ -39,7 +39,7 @@ func (s *IntSet) UnionWith(t *IntSet) {
}
```
因为每一个字都有64个二进制位所以为了定位x的bit位我们用了x/64的商作为字的下标并且用x%64得到的值作为这个字内的bit的所在位置。UnionWith这个方法里用到了bit位的“或”逻辑操作符号|来一次完成64个元素的或计算。(在练习6.5中我们还会有程序用到这个64位字的例子。)
因为每一个字都有64个二进制位所以为了定位x的bit位我们用了x/64的商作为字的下标并且用x%64得到的值作为这个字内的bit的所在位置。UnionWith这个方法里用到了bit位的“或”逻辑操作符号|来一次完成64个元素的或计算。在练习6.5中我们还会有程序用到这个64位字的例子。
当前这个实现还缺少了很多必要的特性我们把其中一些作为练习题列在本小节之后。但是有一个方法如果缺失的话我们的bit数组可能会比较难混将IntSet作为一个字符串来打印。这里我们来实现它让我们来给上面的例子添加一个String方法类似2.5节中做的那样: