関数の実行時間を出力したいと考えています。何らかの理由で、タイマーが常に 0 を返します。理由を教えてもらえますか?
double RunningTime(clock_t time1, clock_t time2)
{
    double t=time1 - time2;
    double time = (t*1000)/CLOCKS_PER_SEC;
    return time;
}
int main()
{
     clock_t start_time = clock();
     // some code.....
    clock_t end_time = clock();
    std::cout << "Time elapsed: " << double(RunningTime(end_time, start_time)) << " ms";
    return 0;
}
使用しようとしましたがgettimeofday、それでも0が返されました。
double get_time()
{
    struct timeval t;
    gettimeofday(&t, NULL);
    double d = t.tv_sec + (double) t.tv_usec/100000;
    return d;
}
int main()
{
        double time_start = get_time();
        //Some code......
        double time_end = get_time();
        std::cout << time_end - time_start;
    return 0;
}
また、使用chronoしてみましたが、あらゆる種類のビルドエラーが発生しました:
- エラー: #error このファイルには、今後の ISO C++ 標準である C++0x のコンパイラとライブラリのサポートが必要です。このサポートは現在
実験段階であり、-std=c++0x または -std=gnu++0x コンパイラ オプションで有効にする必要があります。 - 警告: 'auto' は C++0x では意味が変わります。削除してください
 - エラー: ISO C++ は型のない 't1' の宣言を禁止します エラー: 'std::chrono' は宣言されていません
 エラー: '(t2 - t1)' のメンバー 'count' の要求は、非クラス型 'int' です
int main() { auto t1 = std::chrono::high_resolution_clock::now();
//Some code...... auto t2 = std::chrono::high_resolution_clock::now(); std::cout << "Time elapsed: " << std::chrono::duration_cast<std::chrono::milliseconds>(t2-t1).count() << " milliseconds\n"; return 0; }