C++相談室 part31
■ このスレッドは過去ログ倉庫に格納されています
0894デフォルトの名無しさん
NGNG#include <stdio.h>
#include <ctype.h>
#include <assert.h>
const int alpha = 1;
int table[256];
maketable()
{ int i;
for (i = 'A'; i <= 'Z'; i++) table[i] |= alpha;
for (i = 'a'; i <= 'z'; i++) table[i] |= alpha;
}
int isa1(int c)
{ return table[c] & alpha; }
int isa2(int c)
{ return ((c >= 'A') && (c <= 'Z')) || ((c >= 'a') && (c <= 'z')); }
int measure(int(*f)(int), int times)
{ char s[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
int i, j, t = clock();
for (i = 0; i < times; i++) for (j = 0; j < sizeof(s) - 1; j++) assert( f(s[j]) );
return clock() - t;
}
main()
{ maketable();
printf("%dms.\n%dms.\n%dms.\n", measure(isa1, 1000000), measure(isa2, 1000000), measure(isalpha, 1000000));
}
■ このスレッドは過去ログ倉庫に格納されています