전체 글36 [알고리즘] 이진 탐색(Binary Search) using vector: 22.06.09 이진 탐색(Binary Search) 검색할 범위를 절반으로 줄여가며 검색하는 방법 C++ Reference(std::binary_search) std::binary_search - cppreference.com (1) template bool binary_search( ForwardIt first, ForwardIt last, const T& value ); (until C++20) template constexpr bool binary_search( ForwardIt first, ForwardIt last, const T& value ); (since C++20 en.cppreference.com 1... 2022. 6. 9. 객체 지향 기초(OOP with C++)_객체 지향 프로그래밍의 주요 개념 4가지 : (22.05.30) 객체 지향 프로그래밍의 주요 개념 4가지 1. 캡슐화 2. 상속 3. 추상화 4. 다형성 1. 캡슐화 데이터와 데이터를 다루는 함수를 같이 작성하는 것 //C 언어에서의 예시 struct Car { const char* Name; } void Car_Create(Car* car, const char* name) { car->Name = name; } void Car_MakeSound(cosnt Car* char) { printf("The Car's Name is %s", car->Name); } 절차 지향 프로그래밍에서는 위와 같이 데이터와 데이터를 다루는 함수를 나눠서 정의했다. //C++ 에서의 예시(캡슐화) class Car { private: //데이터 영역 const char* _name; pu.. 2022. 5. 30. 객체 지향 기초(OOP with C++)_객체 지향 프로그래밍이 나온 이유 : (22.05.30) 객체 지향 프로그래밍 현대 프로그래밍 패러다임 중 가장 주류가 된 프로그래밍 패러다임 사전 계념 1. 객체 데이터 영역 2. ~지향 프로그래밍 ~을 중점으로 프로그램을 만드는 것 3. 프로그래밍 패러다임 프로그래밍을 하는 스타일, 분류 객체 지향 프로그래밍이 나온 이유 절차 지향 프로그래밍의 한계 때문에 절차 지향 프로그래밍의 한계 1. 데이터와 데이터를 다루는 함수가 분리되어 있다. 관련된 객체끼리 모으기 힘들다. 인자로 어떤 데이터를 바꿀 것인지 받아야했다. 즉 포인터를 사용했어야 했다. (포인터는 쓰기 불편하다) 2. 함수의 이름을 항상 다르게 작성해야 한다. 함수의 이름은 식별자임으로 항상 다르게 작성했어야 했다. 즉, 비슷한 내용의 함수이더라도 이름을 각각 다르게 작성했어야 했다. 3. 프로그램.. 2022. 5. 30. 게임 프레임워크 작성하기#2 - Screen Tearing(스크린 태어링), Double Buffering(더블 버퍼링) Screen Tearing 화면이 찢어지는 것처럼 보이는 현상 Screen Tearing이 일어나는 이유 첫번째, 현재 화면이 있는 와중에 다음 화면이 그려지고 있기 때문에. 이는 다음에 설명할 Double Buffering으로 해결할 수 있다. 두번째, 모니터의 주사율(1초에 얼마나 많은 화면을 보여주는가)과 GPU의 프레임이 맞지 않기 때문에. 둘의 싱크를 맞추면 해결이 될 수 있다. 이번에는 첫번째 이유의 해결책인 Double Buffering을 설명하겠다. Double Buffering 스크린 테어링을 방지하기 위한 일환으로, 결과가 나타나는 화면을 구성하는 버퍼를 하나 더 두어 나타내는 방법 더블 버퍼링 방법 현재 보여질 버퍼와 백버퍼를 두어서, 백버퍼에 보여질 화면을 미리 연산하여 그려두고, .. 2022. 5. 11. 이전 1 2 3 4 5 6 ··· 9 다음