zoukankan      html  css  js  c++  java
  • C++时间日期相关

    // 计时
    #pragma once
    
    #include <iostream>
    #include <thread>
    #include <chrono>
    #include <ctime> // clock
    
    namespace DS
    {
        // 当n超过一定次数时,栈溢出,比如10万次时:0x005753E9 处有未经处理的异常(在 DS.exe 中): 0xC00000FD: Stack overflow 
        // 实际项目中慎用递归,实际项目中一般会设置最大递归次数,若到达最大递归次数哪怕没求得结果也要返回,防止程序栈破裂,程序终止
        void PrintN_Recursive(int n)
        {
            // 递归终止条件
            if (n <= 1) {
                return;
            }
    
            //std::cout << n << ' ';// 放在这就会逆序打印
            PrintN_Recursive(--n);
            std::cout << n << std::endl;
        }
    
        void PrintN_Loop(int n)
        {
            for (int i = 1; i <= n; ++i) {
                std::cout << i << std::endl;
            }
        }
    
        void PrintN_Test() 
        {
            clock_t start_time = 0, end_time = 0;
            int n = 0;
            std::cout << "Input N:";
            std::cin >> n;
    
            std::cout << "By loop:" << std::endl;
            start_time = clock();// C语言方式计时
            DS::PrintN_Loop(n);
            end_time = clock();
            std::cout << "duration:" << end_time - start_time << "ms" << std::endl;
            //std::cout << "duration:" << (end_time - start_time) / CLOCKS_PER_SEC << "s" << std::endl; // CLK_TCK或CLOCKS_PER_SEC是每秒走过的时钟打点数
    
            std::this_thread::sleep_for(std::chrono::milliseconds(3000));
    
            std::cout << "By Recursive:" << std::endl;
            auto start = std::chrono::steady_clock::now(); // C++11
            DS::PrintN_Recursive(n);// 当n超过一定次数时,栈溢出,比如1万次时:0x005753E9 处有未经处理的异常(在 DS.exe 中): 0xC00000FD: Stack overflow 
            auto end = std::chrono::steady_clock::now();
            auto dura = std::chrono::duration_cast<std::chrono::microseconds>(end - start).count();// 微妙
            std::cout << "duration:" << dura * 0.001  << "ms" << std::endl;
        }
    
    }
  • 相关阅读:
    22 组合电路中的竞争--冒险
    21 典型的组合电路模块(2)
    vhdl和verilog的区别
    17 TTL电路系列(2)
    树莓派Pico
    ESP8266/ESP32自动下载电路原理分析
    CH340芯片
    26. 删除排序数组中的重复项
    25. K 个一组翻转链表
    23. 合并K个排序链表
  • 原文地址:https://www.cnblogs.com/djh5520/p/15108424.html
Copyright © 2011-2022 走看看