선형 자료구조 정리 (연결리스트)
2021. 1. 20. 21:10
DevLog/자료구조
연결리스트(Linked List) 란? 1. 연결리스트는 동적으로 크기를 조절(동적할당)하므로 배열을 사용하는것 보다 메모리를 효율적으로 사용 할 수 있다. 2. 일반적으로 배열이나 배열 큐, 스택을 사용할때, 배열 중간에 데이터를 삽입하기 위해서는 처음이나 끝에서 차례차례 이동시켜야하기 때문에 불필요한 연산을 많이 하게된다. 이 때 이러한 Sequential 표현에서 데이터 이동의 문제점을 해결할 수 있는 방법이 바로 연결리스트이다. 단순 연결 리스트에서는 데이터를 가지고 있는 공간인 Node와 그 다음 주소를 저장하는 공간인 next Node로 구성되어있고, Node의 마지막 데이터 공간의 nest Node에는 Null 값이 들어간다. Node = 데이터 값을 가지고 있는 공간 next Node = ..
선형 자료구조 정리 (큐)
2021. 1. 20. 20:48
DevLog/자료구조
큐(Queue) 란? 큐(Queue)의 사전적 의미는 무엇을 기다리는 사람, 차량 등의 줄 혹은 줄을 서서 기다리는 것을 의미하는데 이처럼 줄을 지어 순서대로 처리되는 것이 큐라는 자료구조입니다. 큐는 데이터를 일시적으로 쌓아두기 위한 자료구조로 스택과는 다르게 FIFO(First In First Out)의 형태를 가지며, 뜻 그대로 먼저 들어온 데이터가 가장 먼저 나가는 구조를 말합니다. Queue는 C++ 표준 라이브러리(STL, Standard Template Library)에 정의 되어 있어 필요할 때마다 만들어 사용하지 않고 include하여 사용하시면 편리합니다. Enqueue 큐 맨 뒤에 데이터 추가 Dequeue 큐 맨 앞쪽에 데이터 삭제 큐(Queue)의 특징 1. 먼저 들어간 자료가 먼..
선형 자료구조 정리 (스택)
2021. 1. 20. 20:23
DevLog/자료구조
스택(Stack) 이란? 1. 가장 늦게 들어간게 먼저 나가는 방식. 2. 가장 늦게 들어간 자료가 가장 먼저 나가는 구조를 후입선출(LIFO, Last In First Out)이라고도 부른다. 3. 스택은 한쪽 끝에서만 자료를 넣고 뺄 수 있다. 4. 스택의 가장 위를 top이라고 하고, 삽입과 삭제가 top에서 일어난다. 스택은 그래프의 자료구조의 탐색방법중 DFS(Depth First Search) 깊이우선 탐색에 사용됩니다. 스택은 자료가 들어가는곳과 나가는곳이 동일하기 때문에 하나의 포인터(top)로 자료 관리가 가능하다. 구현 코드 (C++) #include #define MAXVALUE 2 using namespace std; template class Stack { public: int t..
UE4 C++ FORCEINLINE을 활용한 Enum 클래스 디버깅
2021. 1. 18. 23:08
DevLog/Unreal Engine
Enum Class란? (사용자정의 열거형) 열거형은 정수형 상수를 사람이 알아보기 쉬운 형태로 만들어줍니다. 이러한 열거형은 코드 내부에서만 사용이 가능하고, 언리얼 에디터의 디테일 패널이나, 블루프린트에서 사용이 불가능하다는 문제가 있습니다. 이 문제는 언리얼 전용 열거형을 만들어주시면 해결할 수 있습니다. UEnum 레퍼런스 코드 UENUM(BlueprintType) enum class EViewMode : uint8 { ThirdPerson UMETA(DisplayName = "ThirdPerson"), FirstPerson UMETA(DisplayName = "FirstPerson") }; 위 열거형은 ViewMode를 의미하는 예제 열거형이며 3인칭과 1인칭 타입이 존재합니다. DisplayN..
C++ inline, __inline, __forceinline란?
2021. 1. 18. 22:35
DevLog/C & C++
inline inline 키워드는 함수 호출 시 발생하는 오버헤드를 줄이기 위해 함수를 호출하는 대신 함수가 호출되는 곳마다 함수의 코드를 복사해 넣어주는 방법이다. 그렇다면 함수 호출 시 발생하는 오버헤드는 뭘까? 실제로 함수가 호출되는 과정을 요약하면 함수의 인자를 스택에 저장 함수가 리턴될 때 돌아올 주소를 스택이나 레지스터에 저장 함수의 시작 주소로 점프 함수의 코드 실행 함수에서 만들어진 지역변수, 스택에 저장된 인자 해제, 리턴 값을 레지스터에 저장 함수를 호출 할 때 저장해둔 주소로 되돌아감 위와 같은 과정을 거치는데 간단한 함수를 호출하기 위해서 저런 명령어들을 수행해야 한다면 오버헤드가 될 수밖에 없다. 이런 오버 헤드를 줄이기 위해 C++에서는 inline이라는 키워드를 제공한다. 그림..
UE4 컨트롤러 입력이 안먹는경우(미세먼지 팁)
2021. 1. 10. 21:09
DevLog/Unreal Engine
UE4 컨트롤러 입력이 안먹는경우 Player Controller 클래스에서 Tick Event 활성화 여부 확인해볼 것 Tick Event 비활성화시 컨트롤러 입력 불가