반응형

개발/C++ 37

[C++] constexpr (상수표현식) 사용법 및 예제

출처 : 시작하자! C++17 프로그래밍 /* constexpr 지정자로 선언된 생성자는 클래스를 단순화시키는 동시에 객체 생성과 동시에 멤버 변수를 초기화시킬 목적으로 사용한다. 사용법 :: 1. constexpr 데이터-타입 상수-이름 = 식 2. constexpr 데이터-타입 상수-이름(식) 3. constexpr 데이터 타입 함수 이름(인수) 4. constexpr 생성자(인수) */ #include struct complex { constexpr complex(double r, double i) : re(r), im(i) {} constexpr double real() const { return re; } constexpr double imag() const { return im; } priva..

개발/C++ 2017.03.10

[C++] 템플릿과 vector를 이용한 간단 스택 구현

템플릿을 이용해 간단한 스택을 구현했다. /* 스택 구현 */ #include #include template class Stack { public: void push(T const& elem); void pop(); T top(); bool empty(); private: std::vector vector; }; template void Stack::push(T const& elem) { vector.push_back(elem); } template void Stack::pop() { if (vector.empty()) { throw std::out_of_range("Stack::pop() : empty stack"); } vector.pop_back(); } template T Stack::top()..

개발/C++ 2017.02.22

[C++] 템플릿

템플릿좀 더 다양한 타입에 대응할 수 있는 코드를 만들어 낼 수 있다.템플릿 파라미터에 데이터 타입을 알리는 typename 과 class 는둘 중 아무거나 사용해도 괜찮지만 typename을 사용해야 할 때가 있다. 템플릿 인자추론함수 템플릿 호출 시에 타입을 명시적으로 지정해주지 않아도 함수 인자로 템플릿 파라미터를 결정하는 것을 말한다. template inline T plus(T a, T b); 그렇지만 만약, 위의 plus(1, 0.2) 에서 두 개의 인자가 각각 int, double 일 경우에는 서로 다른 형이기 때문에 동일한 타입의 인자를 받는 T 타입은 인자 추론을 할 수 없어 오류가 발생한다. 이럴 때에는 다음과 같이 타입을 명시적으로 적어주면 된다. plus(1, 2.1); plus(1..

개발/C++ 2017.02.16

[C++] Thread

Thread 이 클래스는 개별 실행 쓰레드를 나타내는 클래스이다. 실행 쓰레드는 동일한 주소 공간을 공유하면서 멀티 스레딩 환경에서 다른 시퀀스와 동시에 실행할 수있는 일련의 명령어이다. 초기화 된 쓰레드 객체는 실행 중인 실행 쓰레드를 나타낸다. 이러한 쓰레드 객체는 결합할 수 있고 고유한 thread id 를 가지고 있다. 디폴트 생성자 (초기화 되지 않은) 쓰레드 객체는 결합 가능하지 않다. 쓰레드 id는 모든 쓰레드에서 공통으로 결합할 수 없다. #include #include #include void printCount(int count) { std::cout

개발/C++ 2017.01.02
반응형