상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
수정하기 - C++에서 std::chrono의 사용법은?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
C++에서 `<a href='https://sangseek.com/sangseeks/std::chrono/ko'>std::chrono</a>`는 시간 측정 및 시간 간격을 다루기 위한 강력한 라이브러리입니다. C++11에서 도입된 이 라이브러리는 시간 단위, 시간 점, 시간 간격을 표현하는 다양한 클래스를 제공합니다. `std::chrono`를 사용하면 시간 관련 작업을 보다 안전하고 직관적으로 수행할 수 있습니다. 1. 기본 구성 요소 `std::chrono`는 주로 세 가지 주요 구성 요소로 나뉩니다: - 시간 점 (Time Points) : 특정 시점을 나타냅니다. - 시간 간격 (Durations) : 두 시간 점 사이의 간격을 나타냅니다. - 시계 (Clock) : 현재 시간을 측정하는 방법을 제공합니다. 2. 시간 간격 (Duration) `std::chrono::duration`은 시간 간격을 나타내는 템플릿 클래스입니다. 기본적으로 두 개의 템플릿 매개변수를 받습니다: `Rep` (표현할 수치의 타입)과 `Period` (시간 단위). ```cpp include <chrono> include <iostream> using namespace std::chrono; int <a href='https://sangseek.com/sangseeks/main/ko'>main</a>() { // 5초를 나타내는 duration 객체 생성 duration<int> five_seconds(5); // <a href='https://sangseek.com/sangseeks/밀리초/ko'>밀리초</a>로 변환 duration<double, std::milli> milliseconds = duration_cast<milliseconds>(five_seconds); std::cout << "5 seconds in milliseconds: " << milliseconds.count() << " ms" << std::endl; return 0; } ``` 3. 시간 점 (Time Point) `std::chrono::time_point`는 특정 시점을 나타냅니다. 시간 점은 특정 시계와 연관되어 있으며, 일반적으로 `std::chrono::system_clock` 또는 `std::chrono::st<a href='https://sangseek.com/sangseeks/eady/ko'>eady</a>_clock`과 함께 사용됩니다. ```cpp include <chrono> include <iostream> include <thread> using namespace std::chrono; int main() { // 현재 시간을 가져옵니다. auto now = system_clock::now(); // 5초 후의 시간을 계산합니다. auto future_time = now + seconds(5); // 현재 시간과 미래 시간을 출력합니다. std::time_t now_time_t = system_clock::to_time_t(now); std::time_t future_time_t = system_clock::to_time_t(future_time); std::cout << "Current time: " << std::ctime(&now_time_t); std::cout << "Future time (5 seconds later): " << std::ctime(&future_time_t); return 0; } ``` 4. 시계 (Clock) `std::chrono`는 여러 종류의 시계를 제공합니다. 가장 일반적으로 사용되는 시계는 `system_clock`, `steady_clock`, `high_resolution_clock`입니다. - system_clock : 시스템의 현재 시간을 나타내며, 실제 시간(UTC)을 기준으로 합니다. - steady_clock : 절대적으로 일정한 시간 간격을 제공하며, 시스템의 부팅 이후의 시간을 측정합니다. 이 시계는 시간의 흐름을 측정하는 데 적합합니다. - high_resolution_clock : 가능한 가장 높은 해상도의 시계를 제공합니다. 일반적으로 `steady_clock` 또는 `system_clock`의 별칭으로 구현됩니다. 5. 시간 측정 예제 아래는 코드 블록의 실행 시간을 측정하는 예제입니다. ```cpp include <chrono> include <iostream> include <thread> using namespace std::chrono; int main() { auto start = high_resolution_clock::now(); // 시작 시간 기록 // 예시로 1초 대기 std::this_thread::sleep_for(seconds(1)); auto end = high_resolution_clock::now(); // 종료 시간 기록 // 경과 시간 계산 duration<double> <a href='https://sangseek.com/sangseeks/elapsed/ko'>elapsed</a> = end - start; std::cout << "Elapsed time: " << elapsed.count() << " seconds" << std::endl; return 0; } ``` 6. 시간 간격의 연산 `std::chrono`를 사용하면 시간 간격을 쉽게 더하거나 뺄 수 있습니다. ```cpp include <chrono> include <iostream> using namespace std::chrono; int main() { duration<int> duration1(10); // 10초 duration<int> duration2(5); // 5초 auto sum = duration1 + duration2; // 15초 auto difference = duration1 - duration2; // 5초 std::cout << "Sum: " << sum.count() << " seconds" << std::endl; std::cout << "Difference: " << difference.count() << " seconds" << std::endl; return 0; } ``` 7. 결론 `std::chrono`는 C++에서 시간 관련 작업을 수행하는 데 매우 유용한 도구입니다. 시간 간격, 시간 점, 시계를 사용하여 다양한 시간 관련 작업을 안전하고 효율적으로 수행할 수 있습니다. C++11 이후로 `std::chrono`는 시간 측정 및 관리의 표준으로 자리 잡았으며, 이를 통해 개발자는 더 나은 성능과 가독성을 가진 코드를 작성할 수 있습니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기