⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 flags.cpp

📁 数据结构与算法分析
💻 CPP
字号:
#include <iostream.h>
#include <stdlib.h>

#include "book.h"

struct btype {
int f0 : 1;
int f1 : 1;
int f2 : 1;
int f3 : 1;
int f4 : 1;
int f5 : 1;
int f6 : 1;
int f7 : 1;
int f8 : 1;
int f9 : 1;
int f10 : 1;
int f11 : 1;
int f12 : 1;
int f13 : 1;
int f14 : 1;
int f15 : 1;
int f16 : 1;
int f17 : 1;
int f18 : 1;
int f19 : 1;
int f20 : 1;
int f21 : 1;
int f22 : 1;
int f23 : 1;
int f24 : 1;
int f25 : 1;
int f26 : 1;
int f27 : 1;
int f28 : 1;
int f29 : 1;
int f30 : 1;
int f31 : 1;
};

struct cstruct {
  char pos[32];
};

struct sstruct {
  short pos[32];
};

struct lstruct {
  long pos[32];
};


int main(int argc, char** argv)
{
  struct cstruct cs;
  struct sstruct ss;
  struct lstruct ls;
  struct btype b;

  char csa[32];
  short ssa[32];
  long lsa[32];

  long count;
  long i;

  Assert(argc == 2, "Usage: flags <number_of_iterations>");

  count = atol(argv[1]);

  cs.pos[0] = true;
  ss.pos[0] = true;
  ls.pos[0] = true;
  csa[0] = true;
  ssa[0] = true;
  lsa[0] = true;
  b.f0 = true;

  Settime();
  for (i=0; i<count; i++) {
    csa[1] = csa[0];
    csa[2] = csa[1];
    csa[3] = csa[2];
    csa[4] = csa[3];
    csa[5] = csa[4];
    csa[6] = csa[5];
    csa[7] = csa[6];
    csa[8] = csa[7];
    csa[9] = csa[8];
    csa[10] = csa[9];
    csa[11] = csa[10];
    csa[12] = csa[11];
    csa[13] = csa[12];
    csa[14] = csa[13];
    csa[15] = csa[14];
    csa[16] = csa[15];
    csa[17] = csa[16];
    csa[18] = csa[17];
    csa[19] = csa[18];
    csa[20] = csa[19];
  }
  cout << "Time for characters (20 assigns): " << count
       << " iterations: " << Gettime() << " seconds\n";

  Settime();
  for (i=0; i<count; i++) {
    ssa[1] = ssa[0];
    ssa[2] = ssa[1];
    ssa[3] = ssa[2];
    ssa[4] = ssa[3];
    ssa[5] = ssa[4];
    ssa[6] = ssa[5];
    ssa[7] = ssa[6];
    ssa[8] = ssa[7];
    ssa[9] = ssa[8];
    ssa[10] = ssa[9];
    ssa[11] = ssa[10];
    ssa[12] = ssa[11];
    ssa[13] = ssa[12];
    ssa[14] = ssa[13];
    ssa[15] = ssa[14];
    ssa[16] = ssa[15];
    ssa[17] = ssa[16];
    ssa[18] = ssa[17];
    ssa[19] = ssa[18];
    ssa[20] = ssa[19];
}
  cout << "Time for shorts (20 assigns): " << count
       << " iterations: " << Gettime() << " seconds\n";

  Settime();
  for (i=0; i<count; i++) {
    lsa[1] = lsa[0];
    lsa[2] = lsa[1];
    lsa[3] = lsa[2];
    lsa[4] = lsa[3];
    lsa[5] = lsa[4];
    lsa[6] = lsa[5];
    lsa[7] = lsa[6];
    lsa[8] = lsa[7];
    lsa[9] = lsa[8];
    lsa[10] = lsa[9];
    lsa[11] = lsa[10];
    lsa[12] = lsa[11];
    lsa[13] = lsa[12];
    lsa[14] = lsa[13];
    lsa[15] = lsa[14];
    lsa[16] = lsa[15];
    lsa[17] = lsa[16];
    lsa[18] = lsa[17];
    lsa[19] = lsa[18];
    lsa[20] = lsa[19];
  }
  cout << "Time for longs (20 assigns): " << count
       << " iterations: " << Gettime() << " seconds\n";

  Settime();
  for (i=0; i<count; i++) {
    b.f1 = b.f0;
    b.f2 = b.f1;
    b.f3 = b.f2;
    b.f4 = b.f3;
    b.f5 = b.f4;
    b.f6 = b.f5;
    b.f7 = b.f6;
    b.f8 = b.f7;
    b.f9 = b.f8;
    b.f10 = b.f9;
    b.f11 = b.f10;
    b.f12 = b.f11;
    b.f13 = b.f12;
    b.f14 = b.f13;
    b.f15 = b.f14;
    b.f16 = b.f15;
    b.f17 = b.f16;
    b.f18 = b.f17;
    b.f19 = b.f18;
    b.f20 = b.f19;
  }
  cout << "Time for bitfields (20 assigns): " << count
       << " iterations: " << Gettime() << " seconds\n";

 return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -