CPLUSPLUS

Category
아이템: CPLUSPLUS(4)
포스트 갯수4

[STL]priority_queue, pair, struct

By 찜질방 | 2017년 9월 26일 | 
내가 만든 구조체를 가지고 우선순위 큐 구현할 때... typedef struct NODE{ ... ...} NODE, *pNode; std::priority_queue< std::pair<double, NODE *>, std::vector<std::pair<double, NODE *> >, greater<std::pair<double, NODE *> > > priority_queue_node; NODE *a;a = new NODE;a->...; std::pair<double, NODE *> tempNODE; priority_queue_node.push(tempNODE); tempNODE = priority

C++ 멀티스레딩 프로그램의 디버깅 방법에 대해

By 이것저것 | 2017년 4월 8일 | 
멀티스레드 프로그램의 버그는 운영체제의 스케줄링 타이밍과 연관되어 변동되는 경우가 많으므로 재현하기가 매우 어려울 수 있다. 따라서 멀티스레드 프로그램의 디버깅은 몇 가지 특수한 테크닉을 요구한다. 1. 메시지에 기반을 두어 디버깅한다 멀티스레드 프로그램을 디버깅할 때는 디버거를 이용하는 것보다 디버그 메시지를 이용하는 것이 더 효과적일 수 있다. 애플리케이션의 종류에 따라서 cout이나 로그 파일 또는 GUI 컴포넌트 등을 통해 메시지를 출력할 수 있다. 크리티컬 섹션의 시작과 끝 그리고 락의 획득과 해제 시점 각각에 디버그 메시지를 삽입한다. 여기서 출력되는 메시지를 분석하면 두 스레드가 동시에 같은 크리티컬 섹션을 점유하거나 한 스레드가 락 때문에 무한히 대기 상태에 빠진 것을 알 수 있다. 즉

[C++] 함수에 const 를 사용하는 세 가지 방법

By 쾌청모멘트의 쾌청한 하루 | 2016년 12월 21일 | 
C++ 에 있어서 const 는 아주 훌륭한 '예방 주사' 다. 수천, 수만 라인이 넘어가는 코드에서도 이 집 물건과 저 집 물건이 섞이지 않게 해주고, 남이 빌려간 물건을 마음대로 파손시키지 못하게 하는 일종의 보증표라고 할 수 있겠다. 나 역시 그런 const를 잘 사용하는 고-급 프로그래머다! , 라고 외쳐봤으면 좋겠지만 솔직히 그렇진 않다고 해두자. 코드 한 줄 한 줄에 정성을 들이고 올바른 논리구조가 서야 하는 일인데 아직 그 단계까지는 요원하기만 하다. (그래도 앵간한거엔 잘 쓰고 있어! 라고 변명해본다...) 아무튼, const 가 제대로 들어간 코드는 아무리 이 기능을 등한시하는 코더라도 감탄한만큼 잘 짜여진 코드다. 방어적인 코드에서 나오는 아름다움은 이

[SOF 번역] 포인터의 dereferencing 이 정확히 무슨 의미인가요?

By 쾌청모멘트의 쾌청한 하루 | 2016년 12월 4일 | 
Q. (257 UP / 173 Stars) 포인터의 "derefencing" 이 무슨 의미인가요? 예제가 곁들여진 설명을 부탁드립니다. (굉장히 불친절한 질문... 임에도 200개가 넘는 추천을 받았다;) A,. (379 UP) 기본적인 용어에 대한 복습 - 만약 당신이 어셈블리를 프로그래밍하는 것이 아니라면, 포인터는 단지 수적인 메모리 주소를 담고 있는 것, 즉 1이 프로세스의 두 번째 메모리를 가리키고, 2는 세 번째, 3은 네 번째... 이렇게 상상하는 것만으로 충분합니다. 0과 첫 번째 바이트에는 무슨 일이 일어나나요? 글쎄요, 그건 나중에 확인합시다 - 아래에 null pointers 부분을 보세요. 포인터가 무엇을 담는지에 대한 더 정확한 정의, 그리고 어떻게 메모리와 주소가