지속 시간은 시간 단위의 일부 눈금 으로 정의된 시간 범위로 구성됩니다. 예를 들어 “42초”는 1초 시간 단위의 42틱으로 구성된 지속 시간으로 나타낼 수 있습니다. 다른 언어의 이 편리한 기능을 C++에서 복제하는 timercpp라는 라이브러리가 HN의 첫 페이지에 있었습니다. 그것은 표현 코드를 허용 하는 좋은 인터페이스, 그러나 나는 그것이 생산에 사용 되 고 에 대 한 준비가 생각 하지 않습니다. std::time_t 개체 성공, (std:time_t)(-1) 오류로 인코딩된 현재 일정 시간입니다. arg가 null이 아닌 경우 반환 값은 arg가 가리키는 개체에도 저장됩니다. 자바 스크립트 또는 Visual Basic과 같은 일부 언어는 타이머의 기능을 제공합니다. 이 글을 쓰는 시간 (C ++17)과 내 지식에 따르면 C ++는 그러한 기능을 제공하지 않습니다. std::time_t 개체로 인코딩된 현재 캘린더 시간을 반환하고 arg가 null 포인터가 아니라면 arg가 가리키는 개체에도 저장합니다. C++ 11에 도입된 std::chrono 라이브러리를 사용하여 프로그램의 여러 부분에서 수행한 시간을 확인할 수 있습니다. 우리는 C의 프로그램에서 취한 시간을 측정하는 방법에 대해 논의했습니다. 설명된 함수는 C++에서도 지원되지만 C에 따라 다릅니다.

깨끗하고 견고한 C++ 프로그램의 경우 C++ 특정 언어 구문만 사용하도록 노력해야 합니다. 마지막으로 타이머를 중지하려면 stop 메서드가 명확한 플래그를 설정합니다. 활성 상태인 경우 표시된 지연을 기다립니다. 시간을 사용할 수 없는 경우 .1 값이 반환됩니다. 이렇게 하면 폼으로 변환된 시간별로 지정된 구조체에 저장된 정보가 포함된 문자열에 대한 포인터를 반환합니다: 일 월 날짜:분:초 년n 이 함수는 특정 형식으로 날짜와 시간을 포맷하는 데 사용할 수 있습니다. 절차를 보여주는 완전한 C++ 프로그램은 아래에 제공됩니다. 벡터를 몇 개의 난수로 채우고 sort() 함수에서 이 벡터를 정렬하는 데 걸린 시간을 측정합니다. 타이머를 사용할 수 있는 또 다른 라이브러리는 C++이며 부스트 아시오이며 이벤트 루프를 사용합니다.

그러나 표준 C ++에 통합 될 계획인 훨씬 더 큰 라이브러리입니다. 그러나 그것은 다른 게시물에 대한 주제입니다. C++ 표준 라이브러리는 적절한 날짜 유형을 제공하지 않습니다. C++는 C에서 날짜 및 시간 조작을 위해 구조체 및 함수를 상속합니다. 날짜 및 시간 관련 함수 및 구조에 액세스하려면 C++ 프로그램에 헤더 파일을 포함해야 합니다. 첫 번째 줄은 타이머가 활성 상태인지 비활성 상태인지 제어하는 플래그를 설정하여 활성으로 설정합니다: clock_t, time_t, size_t 및 tm의 네 가지 시간 관련 유형이 있습니다. 형식 – clock_t, size_t 및 time_t는 시스템 시간과 날짜를 일종의 정수로 표현할 수 있습니다. 시계는 시작점(또는 시대)과 틱 비율로 구성됩니다.

예를 들어, 시계는 1970년 1월 1일의 시보를 가지며 매 초마다 틱할 수 있습니다. C++는 여러 클럭 유형을 정의합니다: 이것은 현지 시간을 나타내는 tm 구조에 대한 포인터를 반환합니다. 이 예제는 함수 호출의 실행 시간에 대한 정보를 표시합니다: C++에는 두 가지 유형의 시간 조작에 대한 지원이 포함되어 있습니다. 그 좋은 외관 뒤에 무엇이 있는지 보는 것 외에도, 이것은 우리가 std:::thread 인터페이스에 익숙해질 수 있게 해주며, 그 사용법의 간단한 예를 공부함으로써, 또한 우리에게 라이브러리의 단점을 보여줍니다. 그런 다음 타이머가 여전히 활성 상태인지 다시 확인하고 timeout에 전달된 함수를 호출하는 경우 타이머가 여전히 활성 상태인지 스레드의 람다 함수가 반복적으로 확인하고 간격 시간을 기다렸다가 함수를 실행합니다.