天天看點

C++基礎之std-sleep/clock

#include <iostream>
#include <chrono>
#include <thread>

int main(void)
{
    auto start = std::chrono::high_resolution_clock::now();
    std::this_thread::sleep_for(std::chrono::milliseconds(10));
    auto end = std::chrono::high_resolution_clock::now();
    //std::chrono::high_resolution_clock::time_point end = std::chrono::high_resolution_clock::now();

    std::chrono::duration<double> diff = end - start;
    std::cout << diff.count() << " sec" <<std::endl;  // 秒

    getchar();
    return 0;
}
           
#include <iostream>
#include <chrono>
#include <list>
#include <thread>
#include <string>

int main(void)
{
	std::list<std::chrono::steady_clock::time_point>  m_timePoints;  // list 無[]索引

	auto start = std::chrono::steady_clock::now();
	m_timePoints.push_back(start);

	std::this_thread::sleep_for(std::chrono::milliseconds(100));

	auto end = std::chrono::steady_clock::now();
	m_timePoints.push_back(end);

	auto duration_1 = std::chrono::duration_cast<std::chrono::milliseconds>(end - start);
	std::cout << std::to_string(duration_1.count()) << std::endl;

	auto duration_2 = std::chrono::duration_cast<std::chrono::milliseconds>(m_timePoints.back() - m_timePoints.front());
	std::cout << std::to_string(duration_2.count()) << std::endl;

	std::chrono::duration<double> time_span_1 = std::chrono::duration_cast<std::chrono::duration<double>>(end - start);
	std::cout << time_span_1.count() << std::endl;

	std::chrono::duration<double> time_span_2 = std::chrono::duration_cast<std::chrono::duration<double>>(m_timePoints.back() - m_timePoints.front());
	std::cout << time_span_2.count() << std::endl;

	return 0;
}

/*
114
114
0.11446
0.11446
*/
           

繼續閱讀