일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 다이나믹 프로그래밍
- Direct12
- 알고리즘
- 병행성 관련 오류
- OS
- 타입 객체
- 병행성
- 파일시스템 구현
- 그리디알고리즘
- 그리디 알고리즘
- 락
- 컨디션 변수
- 스케줄링
- 렌더링 파이프라인
- 동적계획법
- DirectX12
- 자료구조
- 쓰레드
- 영속성
- DirectX 12
- 운영체제
- 백준
- directx
- I/O장치
- codility
- 디자인패턴
- 멀티프로세서
- 다이나믹프로그래밍
- 멀티쓰레드
- 프로그래머스
- Today
- Total
목록C++ (11)
기록공간
배열 타입은 C언어에서 유래한 것으로 C++에서도 계속 사용하고 있다. C++에서는 std::array라는 새로운 형태의 컨테이너가 있다. std::array는 헤더 파일에 정의되어 있다. std::array는 C언어 배열을 대체하는 안전한(범위를 벗어난 메모리 작업의 위험이 없는) 배열 타입이다. std::array가 도입되기 전에는 std::vector를 사용해야 했다. std::array는 std::vector와는 다르게 크기가 고정되어 있어 새로 항목을 추가하거나 삭제할 수는 없지만 오버헤드가 적은 장점이 있다. std::array는 기존 C언어 배열에 대한 아주 가벼운 레퍼 클래스로 기존 배열에 비해 몇 가지 장점이 있다. 우선 배열의 크기를 항상 정확히 알 수 있고, 포인터가 자동으로 잘못 타..
열거 타입은 타입 세이프하지 않다. 기본적으로 정수 타입 취급을 받기 때문에 서로 완전 별개인 열거 타입 간에도 비교 연산이 가능하다. enum class를 이용하면 이러한 문제를 해결할 수 있다. 다음은 사용 예이다. enum class MyEnum { EnumValue1, EnumValue2 = 10, EnumValue3 }; MyEnum은 타입 세이프하기 때문에 열거값이 다른 정수 타입 변수로 자동으로 캐스팅되지않고 class 이름으로 스코프 설정을 하지 않으면 참조할 수도 없다. 다음과 같이 스코프 설정을 해야 사용 가능하다. MyEnum value1 = MyEnum::EnumValue1 다음과 같이 일반 정수값과 MyEnum 값을 비교하는 것은 문법 위반이다. if(MyEnum::EnumValu..
템플릿은 C++ 프로그래밍 언어의 한 기능으로, 일반화 프로그래밍(Generic Programming)에 있어서 절대적으로 빼놓을 수 없는 C++ 표준 라이브러리 중 하나이다. 각 요수를 일반화하여 개별적으로 다시 작성하지 않고도 각기 다른 수많은 자료형에서 동작할 수 있게 해준다. 일종의 형틀이라고 생각하면 편하다. 원하는 모양을 직접 조각하거나 빗는 것은 시간이 오래 걸리지만 형틀만 단순히 찍어내기만하면 바로 만들 수 있다. 템플릿 종류는 크게 두가지 종류로 나뉘어 사용할 수 있는데, 함수로 쓰이는 함수 템플릿과 클래스로 쓰이는 클래스 템플릿이 그것이다. 우선 함수 템플릿 부터 살펴보도록 하겠다. 함수 템플릿(Function Template) 함수를 만들어 낼때, 함수의 기능은 명확하지만 자료형을 모..