ldjhust

工欲善其事 必先利其器

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

    位集bitset是C++的一个类库,其声明方式为bitset<variable_length> variable(val);其中variable_length是需要的位的长度,variable是变量名,val为初始化值。下面就通过利用bitset对一个文件进行排序的方式简要说明bitset的使用方式。

  假设文件里面没有重复的数字,文件的长度不超过1000,文件里面每个单独的数字也不超过1000。

 1 int FileSort(string fileName)
 2 {
 3     if (0 == fileName.size())
 4     {
 5         return 1;
 6     }
 7 
 8     ifstream readFile(fileName, ios_base::out);
 9     ofstream resultFile("result.txt", ios_base::in);
10 
11     if (!readFile.is_open() || !resultFile.is_open())
12     {
13         return 1;
14     }
15 
16     bitset<1000> nBitset(0);
17     int tmp;
18     
19     while (readFile >> tmp)
20     {
21         nBitset.set(tmp);
22     }
23 
24     for (size_t i = 0; i < 1000; ++i)
25     {
26         if (nBitset.test(i))
27         {
28             resultFile << i << " ";
29         }
30     }
31 
32     return 0;
33 }

一个简单的测试结果:

posted on 2013-05-22 12:56  ldjhust  阅读(249)  评论(0编辑  收藏  举报