Начиная с C ++ 14 вы могли бы сделать diff >= 3s
, чтобы увидеть, была ли разница равна или больше трех секунд (см. этот буквенный эталон продолжительности ).
В противном случае, если вы 'Застряв в C ++ 11, затем используйте diff >= std::chrono::seconds(3)
.
. Обратите внимание, что для этого требуется сбросить start
каждый раз, когда выполняется условие:
if (diff >= 3s)
{
start = end;
// Do something with the something...
}
Это необходимо, потому чторазница может оставаться равной 3
(и, следовательно, diff % 3s == 0
будет истинно) в течение целой секунды, что означает, что ваша часть «Сделай что-то ...» будет многократно ложно выполняться.