분류 전체보기
C# 얕은 복사 깊은 복사
Object.MemberwiseClone 은 shallow copy 를 생성하며, ICloneable interface와 함께 사용하면 deep copy 을 얻을 수 있다. MemberwiseClone 는 새로운 객체를 생성 한 다음, 새로운 객체는 현재 오브젝트의 필드를 copy 하여 단순 복사본을 생성한다. 그리고 필드가 value type 이면 bit-by-bit copy (bit 별 복사)가 수행된다. 필드가 reference type 인 경우 reference 가 복사되지만 reference 된 객체는 복사되지 않는다. 이로 인해 원본 객체와 새로운 개체의 복제본은 동일한 객체를 참조하게 된다. 아래 그림 처럼 shallow clone 은 reference 형태를 가진 객체만 복사가 안된다는 점..
[플5] 16496 - 큰 수 만들기
정렬 함수 3번째 인자 _Pred 람다 함수로 깔끔하게 해결 #include #include #include #include #include using namespace std; #define SIZE 1000 int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); string arr[SIZE]; int n; cin >> n; cin.ignore(); int flag = 0; for (int i = 0; i > arr[i]; if (arr[i] != "0") flag = true; } if (!flag) cout str2 + str1; }); cout
[실1] 2583 - 영역 구하기 bfs
#include #include #include #include #include using namespace std; using int_pair = pair; #define SIZE 1000 #define x first #define y second // 상 하 좌 우 int_pair arr_pos[] { {0, 1}, {0,-1}, {-1,0}, {1, 0} }; queue q; bool graph[SIZE][SIZE]{ false }; int zone = 0; // w:넓이, h:높이, k:테스트 개수 int w, h, k; int BFS() { int block_cnt = 0; while (!q.empty()) { auto front = q.front(); q.pop(); for (int i = 0..
비쥬얼 스튜디오 프로젝트명 변경하는 방법
.sln 파일을 메모장에 옮긴 후 색칠한 곳을 본인이 변경하고자 하는 프로젝트 명으로 변경하기, .vcxproj 확장명 유지. P.S. 폴더명과 참조하는 헤더/라이브러리 파일이 있다면 디렉터리도 바꿔줘야 한다.
DirectX 11 프레임워크 환경 설정하는 방법
SDK 다운로드 사이트 https://www.microsoft.com/ko-KR/download/details.aspx?id=6812 Download DirectX SDK from Official Microsoft Download Center 중요! 아래에서 언어를 선택하면 전체 페이지 내용이 해당 언어로 신속하게 변경됩니다. 네덜란드어독일어러시아어스웨덴어스페인어영어이탈리아어일본어중국어(간체)중국어(번체)체코어포 www.microsoft.com https://github.com/jjuiddong/Introduction-to-3D-Game-Programming-With-DirectX11 GitHub - jjuiddong/Introduction-to-3D-Game-Programming-With-DirectX..
DirectX 11 LNK2019 에러 해결 방법
Unresolved external symbol __vsnprintf .... (in dxerr.lib) #pragma comment(lib, "legacy_stdio_definitions.lib") d3dUtil.h 헤더파일 내 HR 매크로 오류 #pragma comment(lib, "dxerr.lib") #pragma comment(lib, "D3DX11.lib")
[DX11 물방울책] 챕터 4 - Direct3D 초기화
1. Direct3D는 무엇인가? 로우레벨 그래픽스 API이며 3D 그래픽을 구현해서 화면에 출력할 수 있게끔 os와의 중간 다리 역할을 해준다. 2. COM 객체 컴포넌트 오브젝트 모델 (COM)은 독자적으로 그 전 버전들과 호환이 가능한 포인터이며 인터페이스다. COM 객체 포인터를 획득하기 위해선 특수 함수로부터 가져와야 한다, new 불가능. 다 사용했다면 Release 함수를 통해 제거해준다. delete 하면 뻥 날 수가 있다. 3. 텍스처와 데이터 리소스 확장명 2D 텍스처는 데이터의 행렬이다, 사용 용도 중 하나는 이미지 데이터 용이다. (이미지의 각 픽셀 색상에 대한 정보 저장) 매핑이라는 고급 기술에는 색상 대신 3D 벡터를 저장한다. 그리고 오직 DXGI_FORMAT형만 저장이 가능하..
C# ?? 및 ??=, ?. 연산자
C# 코드를 작성하다보면 null 체크를 해야하는 경우가 꽤 많다. if 문을 사용해서 null 체크를 하다보면 코드가 길어지고 가독성이 떨어지게된다 그래서 C# 에서는 간단한 연산자로 null 체크를 할 수 있는 방법을 제공한다. 연산자 ?. 및 ?[] 피연산자가 null 이 아닌 것으로 평가되었을 때만 멤버 액세스 ?. 또는 요소 액세스 ?[] 연산을 피연산자에게 적용하며, 그렇지 않으면 null 을 반환한다. a가 null로 평가되면 a?.x 또는 a?[x]의 결과는 null이다. a가 null이 아닌 것으로 평가되면 a?.x 또는 a?[x]의 결과는 각각 a.x또는 a[x]의 결과와 같다. Null 조건부 연산자는 단락 연산자이다. 즉 조건부 멤버나 요소 액세스 작업의 한 체인의 작업에서 null..
인생 첫 면접 EA코리아 탈락
다대다 형식으로 진행하였고 팀장 세 분이서 cs 지식 가지고 압박 면접을 진행하는데 아무리 대답을 잘한다해도 분위기가 안맞는다하면 떨어지는듯, 다음 면접을 위해 더 준비할 것이며 좋은 기회였던거 같다. 이력서 관련 질문은 없었고 약 50분 가량이였다. 대부분 관련 내용은 올린듯.