为什么我的执行时间不写在文件中?

时间:2019-02-21 22:07:24

标签: c++ c++11

我正在使用Chrono库来计算我特定代码行的执行时间。我可以计算执行时间,但是当我尝试将其写入文件时,会遇到各种错误。 我遇到的错误是:

与运算符<<< / p>不匹配

无法将diffe转换为const unsigned char *类型

这是我的代码的一个实例

    int main ()
{   

    ofstream plot;
    plot.open("graph.txt");

    srand((unsigned)time(0));    


        int n = 250;
        std::cout <<"The size of the array is:" << n << std::endl;
        std::cout <<"\n";

        plot << n;
        int *arr = new int (sizeof(int)*n);

        for (int i=0;i<n;i++)
        {

            int number = (rand()%1000+1);
            arr[i] = number;
        }
        std::cout << "The array provided is:" << std::endl;
        for (int i=0;i<n;i++)
        {
            std::cout << arr[i] << " ";

        }
        std::cout << "\n";
        std::cout<<"\n";

                auto start = chrono::steady_clock::now();
                Selectionsort (arr,n);
                auto end = chrono::steady_clock::now();
                auto diffe = end-start; 
                double  a = (double ) diff;
                plot << diff;
                std::cout << "The execution time for average case is:" <<
                std::cout << chrono::duration <double, milli> (diffe).count() << " ms" << std::endl;

情节<<不同; 这就是我遇到错误的原因。我在这段代码中所做的工作是计算最佳,最差和平均情况下的执行时间,并将数组和数据的大小传输到文件以绘制图形。

之前,我没有使用Chrono库的经验

1 个答案:

答案 0 :(得分:0)

持续时间的问题可以用duration_cast来解决,另一个问题是行int *arr = new int (sizeof(int)*n);,正如molbdnilo所注意到的,该行仅分配了一个{{1} }}。您可能还想使用更好的随机数生成器。代码中的建议:

int