// 计时
#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;
} }

C++时间日期相关的更多相关文章

  1. 时间日期相关总结-System类的常用方法

    时间日期相关总结 Date类 A.构造方法 Date();根据当前系统时间创建日期对象 Date(long time);根据传入的毫秒值时间创建日期对象 B.成员方法 long getTime(); ...

  2. 时间日期相关类:Date类,DateFormat类&SimpleDateFormat类,Calendar类

    日期相关类 1.Date类:日期时间类 A.构造方法 Date(): 根据当前系统时间创建日期对象 ​ Date(Long time):根据传入的毫秒值时间创建日期对象 B.成员方法 Long get ...

  3. 【Android 应用开发】Android - 时间 日期相关组件

    源码下载地址 : -- CSDN :  http://download.csdn.net/detail/han1202012/6856737 -- GitHub : https://github.co ...

  4. Android - 时间 日期相关组件

    源码下载地址 : -- CSDN :  http://download.csdn.net/detail/han1202012/6856737 -- GitHub : https://github.co ...

  5. 时间日期相关:Date类、DateFormat类、Calendar类

    1 Date类 类 Date 表示特定的瞬间,精确到毫秒. 1秒=1000毫秒 毫秒的0点:公元1970年 一月一日,午夜0:00:00 对应的毫秒值就是0 时间和日期的计算,必须依赖毫秒值. Sys ...

  6. Java 各种时间日期相关的操作

    目录 1.获取当前时间的时间戳 1.1.时间进制 1.2.获取毫秒级时间戳 1.3.获取纳秒级时间戳 2.java.util包 2.1.Data 2.2.Calendar 3.java.time包 3 ...

  7. Java基础 与时间日期相关的类:System -Date -SimpleDateFormat -Calendar类 -解决后缀.000Z 的时区问题

    笔记总结: /**与时间相关的类:System_Date_SimpleDateFormat_Calendar类 * 1.system 类下的currentTimeMillis() * 输出从1970年 ...

  8. Java 8 时间日期库的20个使用示例

    java 8是如何处理时间及日期的 有人问我学习一个新库的最佳途径是什么?我的回答是,就是在实际项目中那样去使用它.在一个真实的项目中会有各种各样的需求,这会促使开发人员去探索和研究这个新库.简言之, ...

  9. java8新的时间日期库及使用示例

    转自:https://www.cnblogs.com/comeboo/p/5378922.html 来自:Java译站 链接:http://it.deepinmind.com/java/2015/03 ...

  10. Java 8新的时间日期库的20个使用示例

    原文链接 作者:Javin Paul 译者:之诸暇 除了lambda表达式,stream以及几个小的改进之外,Java 8还引入了一套全新的时间日期API,在本篇教程中我们将通过几个简单的任务示例来学 ...

随机推荐

  1. vue node Failed at the iview-admin

    npm ERR! iview-admin@1.3.1 dev: `webpack-dev-server --content-base ./ --open --inline --hot --compre ...

  2. ES-DSL

    GET index_name/_search{ "track_total_hits":true} 可以查询总记录数,不加只能展示最多10000条

  3. 新发现的几个不错的c++库

    1.coost 包含了各种常用的库,比boost轻量级的基于c++11的库 https://github.com/idealvin/coost 2.ImGui 一个较少依赖的gui界面库 https: ...

  4. hive中对时间处理的函数总结

    日期转为时间戳 unix_timestamp('2022-11-12 00:00:00.000') 结果:1668182400 from_unixtime(unix_timestamp('2022-1 ...

  5. vue 中使用 XLSX 和 xlsx-style 实现前端下载Excel表格

    import XLSX from "xlsx-style"  //ps  需要修改源码:在\node_modules\xlsx-style\dist\cpexcel.js 807行 ...

  6. java后台接收参数为枚举,postman的json如何传入

    使用postman测试接口,其中一个参数为枚举类型,如何传入参数? 1 枚举类型: public enum UserCourseOrderSourceType{ USER_BUY(1,"用户 ...

  7. 记录一次阿里云ECS搭建代理服务器的过程

    [参考资料](Tinyproxy安装与配置(ip代理) - 林先生 (downdawn.com)) 1.一键安装脚本 vim proxy.sh #! /bin/bash # 配置文件 CONFIG_F ...

  8. WARN hdfs.DataStreamer: Caught exception

    在向hdfs上传文件的时候,报了这么一个错: Exception in thread "main" java.lang.RuntimeException: org.apache.h ...

  9. 17.SQLite数据库存储

    Android系统内置一个SQLite数据库,SQLite是一款轻量级的关系型数据库,它的运算速度非常快,占用资源很少,通常只需要几百K的内存就足够了. SQLite不仅支持标准的SQL语法,还遵循了 ...

  10. RabbitMQ管理界面使用之手动送数据

    目录 1. 找到相应的队列, 点击进入详情 2. 找到Publish Message项,填写自定义数据 3. 发送数据 4. 发送成功 5. 接收 1. 找到相应的队列, 点击进入详情 2. 找到Pu ...