回答編集履歴

3

微修正

2021/09/26 12:05

投稿

episteme
episteme

スコア16614

test CHANGED
@@ -76,7 +76,7 @@
76
76
 
77
77
  int main() {
78
78
 
79
- duration = std::chrono::milliseconds(1000);
79
+ duration = std::chrono::milliseconds(500);
80
80
 
81
81
  now = std::chrono::steady_clock::now();
82
82
 

2

加筆

2021/09/26 12:05

投稿

episteme
episteme

スコア16614

test CHANGED
@@ -29,3 +29,59 @@
29
29
  }
30
30
 
31
31
  ```
32
+
33
+
34
+
35
+ [追記] 一定時間ごとに何かしたいのかしら。だったら
36
+
37
+ ```C++
38
+
39
+ // 500ミリ秒ごとに"なんかする"
40
+
41
+ #include <iostream>
42
+
43
+ #include <chrono>
44
+
45
+
46
+
47
+ std::chrono::steady_clock::time_point now;
48
+
49
+ std::chrono::milliseconds duration;
50
+
51
+
52
+
53
+ void do_something() {
54
+
55
+ std::cout << "なんかする\n";
56
+
57
+ }
58
+
59
+
60
+
61
+ void update() {
62
+
63
+ std::chrono::steady_clock::time_point tmp = std::chrono::steady_clock::now();
64
+
65
+ if ( std::chrono::duration_cast<std::chrono::milliseconds>(tmp - now) >= duration ) {
66
+
67
+ now = tmp;
68
+
69
+ do_something();
70
+
71
+ }
72
+
73
+ }
74
+
75
+
76
+
77
+ int main() {
78
+
79
+ duration = std::chrono::milliseconds(1000);
80
+
81
+ now = std::chrono::steady_clock::now();
82
+
83
+ for (;;) update();
84
+
85
+ }
86
+
87
+ ```

1

微修正

2021/09/26 12:01

投稿

episteme
episteme

スコア16614

test CHANGED
@@ -1,6 +1,8 @@
1
1
  sleep_for() には時間(duration)、
2
2
 
3
3
  sleep_until() には**時刻(time_point)**を与えます。
4
+
5
+ ※ キッチンタイマー(時間指定) と 目覚まし時計(時刻指定) の違いです
4
6
 
5
7
 
6
8