• 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;
        }
    
    }
  • 相关阅读:
    golang学习笔记(7)--函数式编程
    golang学习笔记(6)--面向接口编程
    go语言学习笔记(5)--面向对象
    go语言学习笔记(4)--容器与字符串的基本概念
    go语言学习笔记(3)--简单的程序设计
    go语言学习笔记(2)--go语言语法细节与基本数据类型
    go语言学习笔记(1)--第一个go语言程序
    Linux学习笔记系列(1)
    Scrapy爬虫小demo总结
    python基础总结(6)
  • 原文地址:https://www.cnblogs.com/djh5520/p/15108424.html
Copyright © 2020-2023  润新知