C++ の chrono の色々な時間表記の仕方 ― 2020年09月24日 12時29分09秒
まずは、前回と同じ秒で明記する方法。
同じようにミリ秒などで指定することも出来る。
#include <chrono>
#include <thread>
#include <iostream>
int main()
{
std::cout << "SLEEPING" << std::endl;
std::this_thread::sleep_for( std::chrono::seconds( 1 ) ); // 1 sec
std::cout << "WOKE UP" << std::endl;
}
また duration を用いて、間隔を使った指定方法もある。
#include <chrono>
#include <thread>
#include <iostream>
int main()
{
std::cout << "SLEEPING" << std::endl;
std::this_thread::sleep_for( std::chrono::milliseconds( 300 ) ); // 0.3 sec
std::cout << "WOKE UP" << std::endl;
}
chrono は内部的には比率を用いいて時間を保持しているらしく、その形式で指定する事もできる。しかし、可読性が一気に落ちる。
#include <chrono>
#include <thread>
#include <iostream>
int main()
{
std::cout << "SLEEPING" << std::endl;
std::this_thread::sleep_for(
std::chrono::duration< int, std::milli >( 400 ) ); // 0.4 sec
std::cout << "WOKE UP" << std::endl;
}
どのコードも単体で動き、所定の時間だけスリープする。
#include <chrono>
#include <ratio>
#include <thread>
#include <iostream>
int main()
{
std::cout << "SLEEPING" << std::endl;
std::this_thread::sleep_for(
std::chrono::duration< int, std::ratio< 1, 10 > >( 5 ) ); //
0.5 sec
std::cout << "WOKE UP" << std::endl;
}
前回。
最近のコメント