본문 바로가기

C#

[C++] Task Manager - Day 1

728x90
반응형
//
//  main.cpp
//  TaskManager
//
//  Created by 이강훈 on 2024/05/26.
//

#include <iostream>
#include <chrono>
#include <thread>
#include <vector>
#include <algorithm>

using namespace std::chrono;
 
int main(int argc, const char * argv[]) {
    
    std::cout << "Hello, World!\n" << std::endl << std::endl;
    
    // std::chrono::seconds five_seconds = std::chrono::seconds(5);
    auto five_seconds = 5s;
    // auto 키워드 잘 기억해둘것.
        auto custom_five_seconds = duration<double, std::ratio<5/1>>(1);
    
    // 실행시키면 5초동안 기다렸다가 프로그램이 종료된다
    std::this_thread::sleep_for(five_seconds);
    
    /*
     auto day = 24h;
     auto my_seconds = seconds(day);
     std::cout << my_seconds.count();
     
     */
    
    auto time_point = system_clock::now();
    std::cout << duration_cast<days>(time_point.time_since_epoch()).count() << std::endl;
    
    
    auto old = steady_clock::now();
    
    std::vector<int> v(1000000);
    std::cout << std::count_if(v.begin(), v.end(), [](int i){return i==0;} ) << std::endl;
    auto dur = steady_clock::now() - old;
    
    std::cout << duration_cast<microseconds>(dur).count() << std::endl;
    return 0;
}

 

회사에서 공부하는 조직을 만들어서 운영을 하고 있는데, 미니 프로젝트 주제를 각자 하나씩 잡아서 구현을 하는걸 목표로 삼았다.

내가 잡은 목표는, C++로 Task Manager를 만들어서 그날 그날의 업무를 관리할 수 있는 프로그램을 만드는 것이다.

 

필요한 기능은 다음과 같다.

 

① 그날 그날의 업무 기록

 

② 목표로 설정한 타이머

 

③ 현재 시간

 

+ 기본적인 기능은 이렇고, 더 추가가 될 수 있는 부분은 천천히 추가하는걸로.

 


 

맥북을 사용하지만, C++를 맥북으로 개발해본적이 없어서, 창피하게도 Xcode를 처음으로 사용해보았다.

 

 

 

chrono library 를 사용해서, 

 

auto 키워드를 사용할 경우, 어떻게 되는지 살펴보자.

 

auto 키워드 : C++ 표준에 기록되어 있는 auto라는 키워드는 원래 의미와 수정된 의미가 정의되어 있다. C++11전에는 auto는 자동 저장소 클래스에 있는 변수, 지역변수를 선언하는 역할을 했었다. 그러나 C++11부터 auto라는 키워드는 선언의 초기화 식에서 형식이 추론되는 변수를 선언하는 역할을 하고 있다. 이러한 차이 때문에 C++버전에 따라 auto라는 키워드는 다르게 동작 할 수 있다.

 

 

 

 

 

 

위에가 endl

아래가 개행문자 ("\n")

 

개행문자가 더 빠르다?

 

//
//  main.cpp
//  TaskManager
//
//  Created by 이강훈 on 2024/05/26.
//

#include <iostream>
#include <chrono>
#include <thread>
#include <vector>
#include <algorithm>

using namespace std;
using namespace std::chrono;
 
int main(int argc, const char * argv[]) {
    auto old = steady_clock::now();
    
    for (int i = 0; i < 1'000'000; i++) {
        cout << i << " test" << endl;
    }
    
    auto test1 = steady_clock::now() - old;
    
    old = steady_clock::now();
    
    for (int i = 0; i < 1'000'000; i++) {
        cout << i << " test" << "\n";
    }
    
    auto test2 = steady_clock::now() - old;
    
    cout << duration_cast<microseconds>(test1).count() << endl;
    cout << duration_cast<microseconds>(test2).count() << endl;
}

 

728x90
반응형