본문 바로가기

반응형

C++

C++ : 범위 기반 for 반복문 범위 기반 for 반복문 int scores[3] = { 10, 20, 30}; for ( int score : scores) { std::cout 더보기
C++ 함수 중괄호 전 const 오늘 회사 신입에게 c++ 언어 코드 리뷰를 하다가 제대로 모르는 것 같아 다시 정리해주었다. 그리고 좋은 정리 Github 사이트가 있길래 퍼왔다. 도움이 되길 바란다. Const after function class Number { public: int GetNum() { return num; } bool IsNotZero() const { return num != 0; } private: int num; }; 위의 함수가 존재한다고 할 때, IsNotZero()라는 함수 뒤의 const의 역할은 무엇일까? 바로 이 함수 안에서는 어떤 변수도 바꿀 수 없음(mutable은 예외)를 뜻한다. 함수가 클래스 멤버인 경우에만 const 키워드를 함수 뒤에 삽입 할 수 있으며 해당 함수가 속한 객체의 멤버 .. 더보기
Wrapper 클래스 Wrapper class 회사 후임이 Wrapper class를 몰라 혹시 모르는 사람들을 위해 미리 정리해 보았다. C++을 쓰시면 많이 볼 수있는데, 래퍼 클래스는 간단하게 말하자면, 기본 자료형(int나 long)같은 데이터를 객체에 넣기 위해 제공하는 함수들 이라고 생각하면 된다. 좀더 명확한 설명은 래퍼 클래스는 기본 자료형(primitive data types)에 대한 클래스 표현을 래퍼 클래스(wrapper classes)라고 합니다. ex) int num = 5; --> Integer num = new Integer(5); 그렇지만, C++ 외에도 래퍼(wrapper)라는 개념이 쓰이는데, 항상 아래와 같은 개념으로 생각하면 되겠다. Wrapper 클래스란 보통 간단한 자료형 하나를 데이터.. 더보기
2D 배열의 관련 연산 최적화 CPU 캐시라인 논문 제목 : OpenMP 병렬 프로그래밍과 Cache 친화적 프로그래밍을 통한 초분광 영상처리 최적화 2. Cache 친화적 프로그래밍 Modern Hardware Architecture Modern comupter들은 아래 그림과 같은 구성을 가지고 있는데, CPU와 가까울 수록 Access time이 줄어든다. 특히 L1 Cache에 접근하기 위해서는 1 Clock만이 소요된다. 따라서 최대의 성능을 C++ application에서 얻기 위해서는 Cache과 친화적인 프로그래밍을 하는 것이 중요하다. 초분광 영상의 복사보정 처리를 하기 위해서는 여느 영상과 같이 C++ 2 차원 배열을 통해 영상을 처리한다. 본 연구에서는 열 단위가 아닌 행 단위로 접근하여 영상처리하는 Cache f.. 더보기