草庐IT

计时表

全部标签

c++ - 这段代码怎么会是 constexpr? (std::计时)

在标准文件P0092R1中,HowardHinnant写道:template{}>>constexprTofloor(constduration&d){Tot=duration_cast(d);if(t>d)--t;returnt;}这段代码如何工作?问题是std::chrono::duration上的operator--不是constexpr操作。它被定义为:duration&operator--();然而这段代码可以编译,并在编译时给出正确的答案:static_assert(floor(minutes{3}).count()==0,"”);这是怎么回事?

c++ - "QObject::startTimer: timers cannot be started from another thread"没有计时器 && CPU 消耗

我在Qt(4.7.2)中创建了一个多线程应用程序。只有主线程有事件循环。问题是有时我在控制台中收到以下警告:QObject::startTimer:timerscannotbestartedfromanotherthread发生这种情况后,应用程序会消耗100%的CPU(我有一个单核CPU)。看起来,主线程消耗了所有的CPU资源。该程序不会卡住,一切仍然有效。当我在调试器中停止程序时,我没有在调用堆栈中看到我的代码。问题是我根本没有使用(明确地,无论如何)计时器。它可以连接什么?我知道,这个问题很常见,但我什至不明白要显示哪一段代码。 最佳答案

c++ - 做OOP状态机设计时如何避免单例?

我正在尝试自学编程。我相信大多数人都是以同样的方式开始的;制作小而杂乱的应用程序和游戏,以不那么简单的方式做简单的事情。最近,我一直在尝试通过编写一个稍微复杂一些的游戏来进行下一步,该游戏使用OOP设计来编写更好、更模块化的代码!我一直遇到的主要问题是我的主要StateManager(FSM)类的设计(在介绍/菜单/游戏/等屏幕状态之间切换)。我看了高低,真正看到的只有两种设计方法:使用switch/case语句+枚举在状态之间切换..制作一个单例FSM类来处理向/从vector插入/弹出状态。现在,我的问题是,switchcase语句非常重复和笨拙,这有点违背我使用这个项目自学OOP

c++ - 带有 std::thread 和 std::chrono 的基本计时器

我正在尝试使用经典方法实现一个基本计时器:start()和stop()。我将c++11与std::thread和std::chrono一起使用。启动方法。创建一个在给定间隔时间内休眠的新线程,然后执行给定的std::function。当“运行”标志为真时重复此过程。停止方法。只需将“运行”标志设置为false。我创建并启动了一个显示“Hello!”的Timer对象。每秒,然后与其他线程一起尝试停止计时器,但我不能。计时器永远不会停止。我认为问题出在th.join()[*]上,它在线程完成之前停止执行,但是当我删除th.join()行时,显然程序在计时器开始计数之前完成。那么,我的问题是

c++ - 安全地取消 boost asio 截止时间计时器

我正在尝试取消boost::asio::basic_waitable_timer安全。根据这个answer,这段代码应该完成这项工作:timer.get_io_service().post([&]{timer.cancel();})恐怕它对我不起作用。我做错了什么吗?这是我的代码:#include#include"boost/asio.hpp"#include#include#includeboost::asio::io_serviceio_service;boost::asio::basic_waitable_timertimer(io_service);std::atomicsta

c++ - 侧翻安全计时器(滴答声)比较

我有一个硬件计数器,我可以观察它以考虑时序问题。它计算毫秒并存储在16位无符号值中。我如何安全地检查计时器值是否已超过特定时间并安全地处理不可避免的翻转://thisisabitcontrived,butitillustrateswhatI'mtryingtodoconstuint16_tprint_interval=5000;//millisecondsstaticuint16_tlast_print_time;if(ms_timer()-last_print_time>print_interval){printf("Fault!\n");last_print_time=ms_tim

c++ - C++ 中最好、最准确的计时器是什么?

C++中最好、最准确的计时器是什么? 最佳答案 在C++11中,您可以通过以下方式轻松获得最高分辨率的计时器:#include#include#include"chrono_io"intmain(){typedefstd::chrono::high_resolution_clockClock;autot1=Clock::now();autot2=Clock::now();std::cout示例输出:74nanoseconds“chrono_io”是一种用于缓解这些新类型的I/O问题的扩展,可免费获得here.还有一个的实现可以在bo

c++ - 在 for 循环中倒计时

我相信(根据一些研究读物)for循环中的倒计时实际上在运行时更高效、更快速。我的完整软件代码是C++我目前有这个:for(i=0;i我的'i'是unsignedresgisterint,“域”也是无符号整数在for循环中,i用于遍历数组,例如array[i]=dostuff将其转换为倒计时会扰乱我例程的预期/正确输出。我可以想象答案很微不足道,但我无法理解。更新:'dostuff'不依赖于之前或之后的迭代。for循环内的计算对于i的迭代是独立的。(我希望这是有道理的)。更新:为了通过我的for循环实现运行时加速,我是倒计时,如果是的话,在delcaring我的int时删除未签名的部分,

c++ - boost::asio::deadline_timer 是否为每个计时器使用一个线程?

我有一个需要按不同时间间隔更新的项目列表。该列表可以增长到数千个项目。每个项目可能有不同的间隔。如果我为每个项目创建一个计时器,我是否会用线程使系统饱和?我在想创建一个等于项目集中最小间隔的计时器可能会更好,然后在每次更新时增加一个计数器,然后检查计数器现在是否等于任何其他间隔。如果最小间隔是所有其他间隔的倍数,这应该可以工作。有什么建议吗? 最佳答案 Boost不为每个计时器使用一个线程,它保留一个计时器队列。每个计时器都是使用执行实际工作的boost::asio::io_service对象创建的。此对象可以在一个或多个线程中分派

蓝桥杯刷题冲刺 | 倒计时7天

作者:指针不指南吗专栏:蓝桥杯倒计时冲刺🐾最后一周,复习学过的知识,刷题冲刺🐾文章目录1.高精度除法2.扫地机器人3.数的范围4.A-B数对1.高精度除法题目链接:794.高精度除法-AcWing题库给定两个非负整数(不含前导0)A,B,请你计算A/B的商和余数。输入格式共两行,第一行包含整数A,第二行包含整数B。输出格式共两行,第一行输出所求的商,第二行输出所求余数。数据范围1≤A的长度≤100000,1≤B≤10000,B一定不为0输入样例:72输出样例:31n次之后才AC#includeusingnamespacestd;vectorint>div(vectorint>&A,int&b,