C++ 6

우측값 참조와 이동연산

우측값 참조란?우측값 참조는 이름처럼 우측값을 참조하는 자료형입니다. r-value reference라고도 합니다.lvalue만을 참조할 수 있던 일반적인 참조형과는 다릅니다.일반 참조형은 &기호를 쓰지만, 우측값 참조는 &&를 씁니다.아래 코드를 봐주세요.int main(){ int i = 10; int& iRef = i; //lvalue만 참조 가능 //int& iRef = 10; //컴파일 에러 : 비const 참조에 대한 초기값은 lvalue여야 함 int&& rRef = 11;// rvalue만 참조 가능 //int&& rRef = i;//컴파일 에러 : rvalue 참조를 lvalue에 바인딩할 수 없습니다. const int& cRef = i; //lvalu..

C++ 2024.05.02

[프로그래머스 Lv3] 보석 쇼핑

문제 설명 [본 문제는 정확성과 효율성 테스트 각각 점수가 있는 문제입니다.] 개발자 출신으로 세계 최고의 갑부가 된 어피치는 스트레스를 받을 때면 이를 풀기 위해 오프라인 매장에 쇼핑을 하러 가곤 합니다. 어피치는 쇼핑을 할 때면 매장 진열대의 특정 범위의 물건들을 모두 싹쓸이 구매하는 습관이 있습니다. 어느 날 스트레스를 풀기 위해 보석 매장에 쇼핑을 하러 간 어피치는 이전처럼 진열대의 특정 범위의 보석을 모두 구매하되 특별히 아래 목적을 달성하고 싶었습니다. 진열된 모든 종류의 보석을 적어도 1개 이상 포함하는 가장 짧은 구간을 찾아서 구매 예를 들어 아래 진열대는 4종류의 보석(RUBY, DIA, EMERALD, SAPPHIRE) 8개가 진열된 예시입니다. 진열대 번호12345678 보석 이름 D..

Google Protocol Buffer

Google Protocol Buffer는 Google에서 개발한 오픈소스 직렬화 데이터 구조다. 다양한 곳에서 데이터 직렬화를 위해 쓰이고 있다. 간단히 ProtoBuf라고도 부르는 모양이다. 쉽게 설명하자면 .proto라는 파일로(XML 혹은 JSON 같은) 데이터 구조를 짜면, 원하는 프로그래밍 언어로 해당 데이터 구조를 다루는 코드를 자동 생성해주는 프로그램이다. 예를 들면 C++의 struct를 자동으로 선언해주고, 그 struct의 임시 객체를 생성하고, 직/역직렬화 하는 등 여러 편리한 기능을 구현한 코드들이다. 설치 따라하기 Google ProtoBuf를 사용하는 과정은 처음 해보면 굉장히 복잡하게 느껴질 수 있다. 그러나 알고나면 그냥 porotobuf을 한 번 돌리고 생성된 헤더, 소스..

Socket Options

Socket Option이란 우리가 네트워크 통신을 위해 사용하는 Socket은 기본 사용법 대로만 하면 기본적인 통신하는 데에 문제가 없지만, Socket의 세부 옵션 설정을 통해 더 원하는 동작을 구현할 수 있다. 그것은 setsockopt 함수를 사용해서 가능하다. 또한 getsockopt 함수를 통해 현재 설정된 소켓의 옵션을 확인할 수도 있다. setsockopt 함수의 기본 사용법 setsockopt 함수는 보통 다음과 같은 형태로 사용한다. setsockopt(, , , , ); 여기서 이란 우리가 설정 할 주인공(?)의 레벨을 말한다. 예를 들면 우리가 설정 할 옵션이 소켓의 옵션인지, IPv4의 옵션인지, TPC 프로토콜의 옵션인지를 정하는 인자이다. 따라서 소켓의 옵션을 설정해주고 싶다..

STL 컨테이너별 간략 특징 정리

C++ STL에는 여러 종류가 있다. 대표적으로 많이 사용하고 중요한 것들 위주로 알아보자. vector list deque(double-ended queue) 컨테이너 어댑터 queue priority queue stack 연관 컨테이너 정렬되는 연관 컨테이너 map set multiset multimap 정렬 안되는 연관 컨테이너 unordered set(hash set) unorderd map(hash map) vector 벡터는 배열을 기반으로 만들어졌다. 따라서 배열의 특징을 전부 가지고 있다. 그러나 그냥 배열은 그 크기가 고정적이라는 치명적인 단점이 있다. 그래서 벡터는 이 단점을 해결하기 위해 어떤 방식을 사용한다. 그 방식이란, 배열이 다 찼는데 삽입을 하면 원래 배열보다 더 큰 새로운 ..

C++ 2022.02.21

그래픽스 개론

우선 이 카테고리의 글들은 모두 "[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part2: 게임 수학과 DirectX12" 의 강의를 듣고 제 나름대로 정리하여 필기한 내용들임을 알립니다. Part1 은 전부 들어보았는데 꽤 좋은 강의입니다. 여러분도 한 번 쯤 들어보세요. https://www.inflearn.com/course/%EC%96%B8%EB%A6%AC%EC%96%BC-3d-mmorpg-2/dashboard [C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part2: 게임 수학과 DirectX12 - 인프런 | 강의 DirectX 12를 통해 그래픽스 기초를 학습하는 강의입니다. 3D 세상의 물체가 어떤 원리로 모니터 화면에 그려지는지 공부하게 됩니다., MMORPG ..

그래픽스 2021.10.05