模式匹配函数的时间测量无法正常工作
Time measurement of pattern matching functions not working properly
由于某种原因,所有计算的时间都与迭代的第一个函数相同。
for (int i=0;i<3;i++){
ofstream os1("alphabet_1.txt"); // I am overwriting existing file
os1<<txt; // txt is randomly generated string from other function
file_1 = fopen("alphabet_1.txt", "a+");
StartCounter();
while (!feof(file_1)) //reading file with buffer
{
const size_t nchars = fread(buffer, 1, sizeof(buffer)-1, file_1);
buffer[nchars] = ' ';
if (int i=0) BM(buffer, pat);
if (int i=1) KMP(buffer, pat_a);
if (int i=2) SUNDAY(buffer, pat_a);
}
time[i]=GetCounter();
cout<<time[i]<<endl;
}
如果我单独计算时间,BM 为 5,KMP 为 9,周日为 8。
所以我从上面的代码输出是这样的:
5.42
5.30
5.28
如果我这样更改它:
if (int i=1) BM(buffer, pat);
if (int i=0) KMP(buffer, pat_a);
if (int i=2) SUNDAY(buffer, pat_a);
输出将为:
8.41
8.54
8.63
(所以现在所有值都在 KMP 速度附近。
我这样做是因为我希望它们处理相同的字符串,否则我必须创建 3 个file_并将字符串复制到每个字符串中。
所需输出示例:
5.34
9.43
8.22
molbdnilo:
if (int i=0( 与 if (0( 相同。你的意思是如果(i == 0(。
火云:
@molbdnilo 就是这样...
相关文章:
- QSqlquery prepare()和bindvalue()不工作
- 导入库可以跨dll版本工作吗
- 以螺旋方式打印矩阵的程序.(工作不好)
- 对象指针在c++中是如何工作的
- 为什么在Windows上的VS 2019和Clang 9中"size_t"在没有标题的情况下工作
- VSOMEIP-2个设备之间的通信(TCP/UDP)不工作
- 为字符串中每 N 个字符插入空格的函数没有按照我认为的方式工作?
- C++为线程工作动态地分割例程
- 为什么我的 std::ref 无法按预期工作?
- 布尔比较运算符是如何在C++中工作的
- SampleConsensusPrerejective(ext.RANSAC)是如何真正工作的
- 不确定要在我的main中放入什么才能使我的代码正常工作
- 为什么std::condition_variable notify_all的工作速度比notify_one快(对于随机请
- <<操作员在下面的行中工作
- 有人能解释一下为什么下界是这样工作的吗C++的
- ExtractIconEx:可以工作,但偶尔会崩溃
- C++中的memset函数工作不正常
- 当我在第一个循环中使用"auto"时,它工作正常,但是使用"int"它会给出错误,为什么?
- 为什么STD ::计数将常数传递给Lambda,而不是在弦上工作时而不是字符
- C++程序已停止工作-求解常微分方程