반응형

개발 330

[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

[OpenCV] 화재 인식 프로그램 개발 중

이번 2017년 3학년은 이 프로젝트를 끝으로 OpenCV 를 더 이상 사용하지 않을 것 같다. 이제 다른 것들을 공부해보고 싶어졌다. 이번에는 화재 인식 프로그램을 개발하려고 한다. 여러 논문들을 읽어보았는데 불 인식까지는 내가 구현할 수 있을 것 같은데 연기를 인식하기 위한 연기 움직임 추정? 하여튼 연기 인식은 엄청 간단한 알고리즘으로만 구현할 수 있을 것 같다. 아직 많이 부족한 것 같지만 더 이상 OpenCV 만 붙잡고 할 수는 없다. [사진 1: 화재 인식 프로그램 개발 중]

[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

[Android] 안드로이드 연속 촬영(Burst Shot) 구현

이번에 안드로이드 연속 촬영 기능을 구현하는 일이 생겼다. 처음에는 onPictureTaken() 에서 list, byte 배열, LinkedList 를 이용해 쓰레드로 byte 배열로 이루어진 (byte[] data) 것을 적재하여 저장하는 식으로 구현을 하거나, takePicture() 를 쓰레드로 빠르게 찍으려고 시도를 해보았지만 takePicture() 는 빠르게 호출되지만 onPictureTaken()은 씹히면서 호출이 되었다. 예를 들어, takePicture()는 1, 2, 3, 4, 5 이렇게 호출이 바르게 되지만 onPictureTaken()은 1, 2, 5 .. 이런 식으로 호출되어서 오랜 삽질을 하였다. 구현은 아주 쉽다. 매우! 바로 setPreviewCallback() 을 이용하면..

개발/Mobile 2017.02.09
반응형