c++中的定时生成器
Timing generator in c++
我完成了一个素数生成程序。现在,我想测试所有素数所花费的时间,并将这些数字存储在一个数组中。我写了这个代码。。。。
#include <iostream>
#include <ctime>
using namespace std;
int main ()
{
int long MAX_NUM = 1000000;
int long MAX_NUM_ARRAY = MAX_NUM+1;
int long sieve_prime = 2;
int long sieve_prime_constant = 0;
int time_store = 0;
int *Num_Array = new int[MAX_NUM_ARRAY];
std::fill_n(Num_Array, MAX_NUM_ARRAY, 3);
Num_Array [0] = 1;
Num_Array [1] = 1;
while (time_store<=100)
{
clock_t time1,time2;
time1 = clock();
while (sieve_prime_constant <= MAX_NUM_ARRAY)
{
if (Num_Array [sieve_prime_constant] == 1)
{
sieve_prime_constant++;
}
else
{
Num_Array [sieve_prime_constant] = 0;
sieve_prime=sieve_prime_constant;
while (sieve_prime<=MAX_NUM_ARRAY - sieve_prime_constant)
{
sieve_prime = sieve_prime + sieve_prime_constant;
Num_Array [sieve_prime] = 1;
}
if (sieve_prime_constant <= MAX_NUM_ARRAY)
{
sieve_prime_constant++;
sieve_prime = sieve_prime_constant;
}
}
}
time2 = clock();
delete[] Num_Array;
cout << "It took " << (float(time2 - time1)/(CLOCKS_PER_SEC)) << " seconds to execute this loop." << endl;
cout << "This loop has already been executed " << time_store << " times." << endl;
float Time_Array[100];
Time_Array[time_store] = (float(time2 - time1)/(CLOCKS_PER_SEC));
time_store++;
}
return 0;
}
当我运行它时,程序似乎会经历一次长循环,然后崩溃。出了什么问题,我该如何解决?
您在第一个循环结束时删除了numArray
,因此在再次循环时引用NULL。。。
不确定您打算如何处理delete[]
语句。。。但是不管你打算做什么-要么在其他地方做,要么做其他事情,或者重新初始化数组,或者。。。毫无疑问,你可以从这里找到答案。
相关文章:
- Ardunio UNO解决了多个重叠的定时器循环
- 处理影响跨不同线程共享对象的定时回调的最佳方法是什么?
- 我们能否在stm32f中使用硬件定时器控制两个独立的进程
- Arduino Nano:A4988 使用串行输入时通过定时器进行步进控制不稳定
- 在 Windows/C++ 上使用多进程应用程序的高精度定时操作
- 没有信号处理程序的POSIX定时器的目的是什么?
- 在定时器回调函数中使用 Sleep() 会导致C++出现问题吗?
- 如何在Qt中修改QWebsocket定时器
- 当用2个螺纹锁定时,将recursive_mutex死锁
- 仅当数据竞赛存在与锁定时,OpenMP关键部分
- 为什么“ld:找不到 -lstdc++ 的库”,当我使用 pybind11 为 c++ 库打包我的 python 绑定时
- 正确使用 std::condition_variable 触发定时执行
- 如何在主要使用 C++ 绑定时提供 AffinityFunction.BackupFilter
- 寻找一种单一的定时方法来测试各种算法,不包括它们的输入
- 是否可以制作一个定时函数,该函数可以将函数作为参数调用,然后运行并计时
- 特征::<Derived> <Derived> 当列数固定时,无法将块转换为 Ref
- 使用 qt 和 opengl、定时精度和垂直同步问题、c++ 显示图像
- 定时功能:双返0毫秒
- C++Windows中的高分辨率定时器库
- 如何用单个信号处理程序解决这个多linux定时器的问题