编程珠玑

编程珠玑新知识点记录

第一章 开篇

  1. 位图,位向量
    • 位向量(亦作位图,不过与图形学中的位图混淆,下作位向量)。一个n位的二进制数据,数据i如果出现在该二进制的第i位,则该位置为1,否则为0。如:用一个10位长的二进制数据表示元素都小于10的集合,{1,2,3,5,8},该集合用二进制数据的表现形式:0111010010
    • 算法分析
      1. 初始化集合,每个位都置为0;
      2. 读入文件的每个整数,将对应的位置为1;
      3. 遍历二进制数据,如果该位为1,则输出相应的整数。
  2. bitset
    C++语言的一个类库,用来方便地管理一系列的bit位而不用程序员自己来写代码。

    1
    2
    3
    4
    bitset<N>varm (M)
    其中varm为变量名。
    N表示该类型在内存中占的位数,是二进制。
    M表示变量varm的初始值。
    • 相关函数
    1. any(); //当bitset对象的一位或多个位被设置为1 时any()返回true
    2. none(); // 如果bitset 对象的所有位都被设置为0 ,则none()操作返回true
    3. count(); // count()操作返回被设置为1的位的个数.
    4. set(); //我们可以用set()操作或者下标操作符来设置某个单独的位
    5. test(); //测试某个单独的位是否为1 test()操作。用位置做参数,返回true或false
    6. reset(); // 要将某个单独的位设置为0 ,我们可以用reset()或下标操作符
  3. wc -l/c/w filename 统计文件行/字节/字数