일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 2294
- C
- 프로그래머스
- 티스토리챌린지
- directx
- 1563
- RootMotion
- C++
- const
- Unreal Engine5
- 줄 세우기
- winapi
- GeeksForGeeks
- 언리얼엔진5
- DirectX11
- UnrealEngine4
- UE5
- algorithm
- 오블완
- baekjoon
- UnrealEngine5
- IFileDialog
- Programmers
- softeer
- RVO
- NRVO
- Frustum
- 백준
- DeferredRendering
- 팰린드롬 만들기
- Today
- Total
목록분류 전체보기 (709)
Game Develop
초기화리스트를 사용해야 하는 경우 2가지와 사용할 경우 이점을 설명해보겠다. 1. 클래스에서 상수형변수, 참조형변수를 멤버변수로 보유해야 할 경우. 상수형 변수와 참조형 변수는 둘 다 반드시 선언과 동시에 초기화를 시켜야 한다. 애초에 그렇게 하지 않으면 바로 에러가 나오기 때문에 컴파일도 못한다. 초기화리스트는 말 그대로 '초기화'이기 때문에, 생성자에서 원하는 값으로 초기화가 가능하다. 메인함수에서 인스턴스를 생성할 때 원하는 매개변수값으로 해당 인스턴스의 상수형변수, 참조형변수를 초기화시키는게 가능하다는 것이다. 아래의 예시를 보면 잘 되는걸 확인할 수 있다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 ..
이런 유형의 문제가 나올줄은 몰랐는데.. 정답은 C이다. 코드에 이 있어서 가독성이 좀 별로긴한데, 어쨌든 Test클래스 코드 끝에보면 a;라고 되어있는게 있다. 즉, 클래스를 정의함과 동시에 해당 클래스 인스턴스를 전역변수로 선언해놓은것이다. 그렇기 때문에 전역변수인 Test a의 생성자가 먼저 실행되고, 그다음 메인함수에 진입하여 cout
신장 트리 - n개의 정점으로 이루어진 무향 그래프에서 n개의 정점과 n-1개의 간선으로 이루어진 트리 최소 신장 트리(Minimum Spanning Tree) - 무향 가중치 그래프에서 신장 트리를 구성하는 간선들의 가중치 합이 최소인 신장 트리 일단 두 알고리즘 최소신장트리(MST)를 만들기 위한 알고리즘이다. 즉, 주어지는 간선의 정보로 최소의 비용을 지불해서 하나의 집합을 만드는 알고리즘이다. 크루스칼 알고리즘 크루스칼 알고리즘은 정점에 비해 간선의 개수가 적을때 MST(최소신장트리)로 만들기에 적합하다. Union-Find 알고리즘(혹은 상호배타적 집합(Disjoint-Set)알고리즘)을 선행학습해야한다. 로직은 다음과 같다. 1. parents테이블을 각자의 값으로 초기화시킨다. -> pare..
https://www.acmicpc.net/problem/1922 1922번: 네트워크 연결 이 경우에 1-3, 2-3, 3-4, 4-5, 4-6을 연결하면 주어진 output이 나오게 된다. www.acmicpc.net 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 int parents[1001]; struct Node { i..
https://school.programmers.co.kr/learn/courses/30/lessons/17677 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 7..
위 문제의 정답은 D이다. 왜일까? 아마 C라 생각한 사람도 있을 수 있다. 하지만 C++에서 Class는 기본적으로 따로 명시하지 않을 경우, 접근제한자는 private이다. (struct는 public) 그렇기 때문에 위의 Point클래스에서의 생성자는 private이고 main함수에서 저렇게 호출 할 수 없다. 그래서 당연히 컴파일단계에서 에러가난다. 위 문제의 정답은 C이다. t1은 저 선언만으로 스택에 Point만큼의 크기를 할당받았지만, t2는 그냥 객체의 주소를 담는 포인터변수일 뿐이다. 아마 C++문법이나 생성자호출에 대해 따로 공부하지않은 사람은 슬슬 헷갈릴 수도 있다. 위 문제의 정답은 C이다. 앞서 말했듯이, 포인터변수는 선언하더라도 생성자가 호출되지 않는다. new연산자를 통해 힙메..
복사생성자가 호출되는 경우를 고르는 문제이다. 이전문제와 같이 A,B,C,D가 전부 해당하기 때문에 정답은 E인 All of the above이다. 차례대로 보자면, A. 클래스의 객체가 값으로 리턴될 때 B. 클래스의 객체가 함수에 매개변수로 넘겨질 때 C. 같은 클래스의 다른 객체를 기반으로 객체를 생성할 때 D. 컴파일러가 임시 객체를 생성할 때 E. 전부 다 A같은 경우, 함수 내에서 Temp a; return a; 라는 구문을 실행할 경우 a라는 인스턴스는 함수가 끝날 때 같이 소멸하지만, a를 리턴받는 곳에서 a의 값을 이용해 복사생성한 객체를 받기 때문에 복사생성자가 호출된다. 참고로 A의 경우처럼 객체를 값으로 리턴할 때 RVO,NRVO라는 컴파일러 최적화 기법?이 있다. 일단 간단하게 말..
클래스 생성 시 따로 코드로 작성하지 않아도 디폴트로 추가되는 생성자,연산자 등을 선택하는 문제이다. A,B,C 모두 해당되기 때문에 정답은 D인 All of the above 이다. 아래의 예시코드를 보면, 클래스 생성과 변수 선언만 했을 뿐이지만 기본생성자,복사생성자,대입연산자 전부 잘 작동한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 class Temp { public: int a = 0; }; int main() { Temp temp1; // A constructor without any parameter // OK. temp1.a = 20; Temp temp2(temp1); // Copy Constructor // OK. Temp temp3; ..