본문 바로가기

전체 글330

reference range(stop): range(10)은 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 range(start, stop): range(1, 11)은 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 range(start, stop, step): range(0, 20, 2)은 0, 2, 4, 6, 8, 10, 12, 14, 16, 18 start, stop, step은 음수로 지정 가능 *파이썬 queue 라이브러리 활용해서 큐 자료 구조 사용하기 Enqueue: 큐에 데이터를 넣는 기능 Dequeue: 큐에서 데이터를 꺼내는 기능 queue 라이브러리에는 다양한 큐 구조로 Queue(), LifoQueue(), PriorityQueue() 제공 프로그램을 작성할 때 프로그램에 따라 적합한 자료.. 2021. 2. 18.
MSB8020 에러 vs2019 버전보다 아래 버전에서 빌드를 하면 생기는 오류. vs2019 버전으로 릴리즈 되면서 같이 v142빌드 도구가 생겨난 것이기 때문. 해결방법은 1. 2019버전으로 다시 깔아준다. 2. 빌드 버전을 바꿔준다. v142버전은 vs2019버전만 사용가능하기 때문에 자신에게 맞는 vs 버전으로 바꾸자. 프로젝트 > 속성 선택. 구성 속성 > 일반 > 플랫폼 도구 집합에서 자신의 vs 맞는 버전으로 선택하고 적용하면 됨. ex> Visual Studio 2017 (v141) 2021. 1. 6.
noexcept #include using std::cout;using std::endl; // 소멸자는 기본적으로 noexcept 함수 void func() noexcept // 해당 함수에서는 예외가 나지 않는다고 선언, 컴파일러가 최적화 할 수 있다{ //throw 1; // noexcept 선언한 함수에서 throw 된다고 하더라도 try catch로 처리할 수 없다} int main(){ try { func(); } catch (int e) { } // 몇몇 STL 함수에서는 noexcept로 지정된 함수가 제공되지 않는 경우 성능 손실이 생길 수 있다}Colored by Color Scriptercs 2020. 12. 14.
RAII #include #include using std::cout;using std::endl; class RAII{public: int* i; RAII() { i = new int; } ~RAII() { cout 2020. 12. 14.
try catch #include using std::cout;using std::endl; double divide(double d, double v){ if (v == 0) { throw "Dirived by zero"; // 처리 되지 않으면 std::terminate } return d / v;} class Parent {};class Child : public Parent {};class Test{public: ~Test() { cout 2020. 12. 14.
전통적인 예외 처리 #pragma warning(disable: 4996)#include #include using std::cout;using std::endl; int divide(double d, double v, double& result){ if (v == 0) { result = 0; return -1; } result = d / v; return 0;} int errorCode = 0;double divide(double d, double v){ if (v == 0) { errorCode = -1; return 0; } errorCode = 0; return d / v;} int main(){ { // 에러 발생 시 종료 // 비정상 종료 //std::abort(); // 종료 코드를 넣은 종료 //exit(1.. 2020. 12. 14.