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

用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

你可能感兴趣的:([编程珠玑读书笔记]第一章代码实现)