본문 바로가기

c++

여러 다각형 제작 (2020 01 06) APP :: 매프레임 루프해 명령큐에 있는 메세지를 확인하고 처리 , +오브젝트 생성 (PeekMessage) CustomException :: 예외처리용, 예외발생시 메세지박스 띄움 Keyboard :: 어떤 키보드의 키를 입력 받았는지 확인 Mouse :: 마우스 키 입력을 받았는지 확인 Timer :: 프레임 반복을 위한 타이머 메소드 (C++11에서 지원하는 시간라이브러리 chorno 사용) Window :: 윈도우 객체 생성하고 키보드 마우스 객체도 생성, 메세지 프로시저 WinMain :: 메인 함수 InfoManager :: 예외처리시 오류정보들 저장한뒤 띄우기, CustomDefine :: 매크로 정의 및 상수 GrahpicsClass :: 디바이스 초기화, 다비이스 가져오기 VertexS.. 더보기
큐브 제작, 파이프라인 프레임워크 나누기 (2020 01 05) APP :: 매프레임 루프해 명령큐에 있는 메세지를 확인하고 처리 , +오브젝트 생성 (PeekMessage) CustomException :: 예외처리용, 예외발생시 메세지박스 띄움 Keyboard :: 어떤 키보드의 키를 입력 받았는지 확인 Mouse :: 마우스 키 입력을 받았는지 확인 Timer :: 프레임 반복을 위한 타이머 메소드 (C++11에서 지원하는 시간라이브러리 chorno 사용) Window :: 윈도우 객체 생성하고 키보드 마우스 객체도 생성, 메세지 프로시저 WinMain :: 메인 함수 InfoManager :: 예외처리시 오류정보들 저장한뒤 띄우기, CustomDefine :: 매크로 정의 및 상수 GrahpicsClass :: 디바이스 초기화, 다비이스 가져오기 VertexS.. 더보기
디바이스 초기화 및 삼각형 출력 ,예외처리 추가 (2020 01 03) APP :: 매프레임 루프해 명령큐에 있는 메세지를 확인하고 처리 (PeekMessage) CustomException :: 예외처리용, 예외발생시 메세지박스 띄움 Keyboard :: 어떤 키보드의 키를 입력 받았는지 확인 Mouse :: 마우스 키 입력을 받았는지 확인 Timer :: 프레임 반복을 위한 타이머 메소드 (C++11에서 지원하는 시간라이브러리 chorno 사용) Window :: 윈도우 객체 생성하고 키보드 마우스 객체도 생성, 메세지 프로시저 WinMain :: 메인 함수 +InfoManager :: 예외처리시 오류정보들 저장한뒤 띄우기, +CustomDefine :: 매크로 정의 및 상수 +GrahpicsClass :: 디바이스 초기화, 정점버퍼등 d3d 함수를 통해 출력하는 클래스.. 더보기
기본적인 윈도우 프레임워크 제작 (2020 01 02) APP :: 매프레임 루프해 명령큐에 있는 메세지를 확인하고 처리 (PeekMessage) CustomException :: 예외처리용, 예외발생시 메세지박스 띄움 Keyboard :: 어떤 키보드의 키를 입력 받았는지 확인 Mouse :: 마우스 키 입력을 받았는지 확인 Timer :: 프레임 반복을 위한 타이머 메소드 (C++11에서 지원하는 시간라이브러리 chorno 사용) Window :: 윈도우 객체 생성하고 키보드 마우스 객체도 생성, 메세지 프로시저 WinMain :: 메인 함수 -> 다음할일 :: d3d device 초기화 적용 더보기
C++ 피보나치 수열 여러 구현 방법 (Fibonacci C++ ) Fibonacci /* 피보나치수열 구현방법 종류 - 2020/01/01 xtar.tistory */ #include #include using namespace std; // 상수 const double pi = (1 + sqrt(5)) / 2; //일반적인 재귀호출 피보나치 int Recursion_FIB(int n) { if (n n; cout 더보기
C++ 배열로 구현한 최대 힙 (Array MaxHeap C++ ) 배열로 구현한 최대힙 구현의 편의상 1번째 인덱스부터 사용함, 삭제된 인덱스 값은 0 maxheap:: 자식관계와 상관없이 부모노드가 자식노드보다 큰 구조 (완전 이진트리) 힙생성(heapify)의 시간복잡도:: O(logN) 트리의 높이에 따라 /* 자료구조 최대힙 구현(배열) - 2019/12/29 xtar.tistory */ #include using namespace std; //최대힙 메소드 void Make_MaxHeap(int arr[],int size) { int cnt = 0; for (int i = 0; i < size; i++) { int child = i; int parent = child / 2; while (arr[parent]1) { auto a = arr[parent]; ar.. 더보기
C++ 스택을 이용한 트리 전위순회 (Tree C++ with Stack) 재귀함수를 사용하지 않고 STL 스택으로 트리 전위 순회하기 *재귀함수의 이해 /* 자료구조 이진트리 스택으로 구현 (재귀 사용 x) - 2019/12/29 xtar.tistory */ #include #include using namespace std; template class Node { T vaule; Node* left; Node* right; Node* root; public: Node() : vaule(0), left(nullptr), right(nullptr), root(nullptr) {}; Node(T _value) :vaule(_value), right(nullptr), root(nullptr) {}; Node(T _value, Node* _left, Node* _right) : va.. 더보기
C++ 이진 탐색 트리 구현 ( Binary Search Tree C++) bst 트리:: 루트노드의 왼쪽노드는 루트노드 보다 작은 값 오른쪽노드는 루트노드 보다 큰 값으로 정렬 삽입,삭제,검색의 시간복잡도:: 평균 O(logN) , 최악 O(N) /* BST(Binary Search Tree) 이진탐색트리 구현 - 2019/12/28 xtar.tistory */ #include using namespace std; template struct Node { Node* left; Node* right; T value; }; template class BinarySearchTree { public: BinarySearchTree() :root(nullptr) {}; ~BinarySearchTree() {}; void AddNode(T _value); bool SearchValue(.. 더보기
C++ 포인터를 이용한 트리 구현 (Pointer Binary Tree C++) 정렬되지 않은 일반적인 이진트리 구현한 함수(다형성을 위해 템플릿 사용) void Preorder(Node* node); 전위 순회:: root->left->rigth 순서대로 출력 void Inorder(Node* node); 중위 순회:: left->root->rigth 순서대로 출력 void Postorder(Node* node); 후위 순회:: left->right->root 순서대로 출력 void SetLeft(Node* node); 왼쪽자식 노드에 node 연걸 void SetRight(Node* node); 오른쪽자식 노드에 node 연결 /* 포인터를 이용해 실제 사용되는 자료구조 이진트리 동일하게 구현 - 2019/12/24 xtar.tistory */ #include using name.. 더보기
C++ 링크드 리스트를 이용한 큐 구현 (Single Linked List Queue C++) FILO(LILO)구조 구현한 함수(다형성을 위해 템플릿 사용) void Enqueue(T _value); T Dequeue(); 가장 먼져 들어간 값을 반환하고 큐에서 지움 bool empty(); 비어있는지 확인하는 함수 /* 싱글링크드 리스트를 이용해 실제 사용되는 자료구조 큐와 동일하게 구현 - 2019/12/23 xtar.tistory */ #include using namespace std; template class Node { public: T value; Node* next; Node() :value(0), next(nullptr) {}; ~Node() {}; }; template class Queue { public: Queue() :head(nullptr), tail(nullptr),.. 더보기