[编程珠玑读书笔记]第一章代码实现

时间:2022-12-28 22:53:13

用C++的bitset实现非常的方便:

/*************
位图排序算法实现
*************/
#include <iostream>
#include <bitset>
#include <fstream>
using namespace std;
int main()
{
// 查看bitset的实现可知bitset是利用对unsigned long进行位运算间接实现对位的存储的
// 如是保存一个32位的bitset实质是保存了4个unsigned long长整数
bitset<1000000> b;
b.reset();

ifstream in("before_sort.txt");
ofstream out("after_sort.txt");
int i;
while (!in.eof()) {
in>>i;
b.set(i);
}

for (i=0;i<1000000;++i) {
if (b[i]==1) {
out<<i<<endl;
}
}
return 0;
}


bitset的成员函数:

http://msdn.microsoft.com/zh-cn/library/a727bt1b(v=vs.90)

bitset的操作例子见:

http://blog.csdn.net/lalor/article/details/7285296