Introduction 이번 3부에선 템플릿 파싱 규칙에 대해서 정리하고 있다. 여기서 typename과 template 들을 사용 하는 방법과 using 사용시 주의 해야 할점, ADL로 인식 안되는 경우 등을 살펴 보고 있다. MSVC에선 일반적으로 간편하게 되는 경우가 있으나, 다른 컴파일러를 사용해야 한다면, 어느정도는 알고 있어야 된다. Content C++ 컴파일러가 C++을 파싱하는 방법 을 책에선 설명하는데, 좀 많이 생략되어서 인터넷으로 한글로 검색하다 나오지 않아 짦은 영어로 검색했다. 그리고 "dragon book"에 잘 나와 있다고 되어 있어서 검색해 보니 "http://en.wikipedia.org/wiki/index.html?curid=188976"이 있었다. 국내 번역서를 찾아..
2009/12 검색 결과
사설 티스토리 임시저장 본 으로 유지하고 있다가 다 날렸슴.. 내 3시간.. 절대쌍교의 가의신공이 생각나는군. 배운게 있다면, 독립적 구성으로 4단계로 구분짓고 저장하는 습관을 기르면 괜찮겠군. 이라고 생각 됨. 템플릿에서 이름을 평가하는 규칙이 왜 중요한가? 가뜩이나 C++에서 이름을 평가하는 방법이 어렵다. 그래서 템플릿까지 끼면 더 어렵다. 어려운 것을 모르고 지나가면, 큰코 다친다. 그래서 중요하다. 만약 C/C++을 공부한 사람이라면, "이게 왜 어려운데?" 라고 반문할 수 있다. 상대적으로 어려운 것이니 그러려니 하자.(운동하고 있는 문체가 운동하고 있는지를 관찰하려면, 다른 운동을 하는 물체와 비교 할 수 밖에 없는 이치와 같다. - 아인슈타인) 템플릿에서 이름을 평가하는 규칙을 알기 전에,..
시작하기에 앞서 학생시절 Effective STL 에서, "알고리즘이 더 좋다" 라는 내용을 보고, 그대로 받아 들여서, 사용하다가, 동기 중 한명이 "모하러 알고리즘을 써 어차피 똑같은거 아니야?" 라고 물었을 때, "보다 더 직관적이잖아." 라고 대답을 했던것으로 기억을 한다. 하지만 제시된 예라든지, 논리적으로 설명을 하지 못해서일까, 팀프로젝트를 진행 할 때, 알고리즘을 사용 하는게 힘들게 되었다. 8개월 정도가 지나고 나서, 그 동안 다른 사람들이 짠 코드 리뷰를 하는 순간 내 직관력은 "확실이 더 좋다." 라고 결론을 냈다. 이번 포스팅은 왜 더 좋은지에 대한 증명이다. 나와있는 예는 "한 타입의 객체를 100개 담은 vector에서 특정 값을 찾고, 어떤 일을 수행하고, 지우는 작업"이다. ..
이 포스트는 지난 포스트인 http://ikpil.com/1070 에 이름을 붙인것에 불과하다. 이전 포스트의 요지는 "if가 중첩되면 중첩 될 수록 코드 수정이 어려워지고, 가독성이 떨어진다" 였다. 이번 포스트는 이러한 if 중첩을 "if 지옥 또는 if Hell" 이라고 나는 이름을 붙여, 표현하겠다는 것이다. 이렇게 불리는 이유는 다음과 같다. 첫째, 개미지옥에 걸린 개미의 모습과 인간의 집중력이 매우 흡사하다. 중첩이 되면 될 수록, 집중력이 점점 흐트려 진다. 왜냐하면, 안쪽으로 깊숙히 들어 갈수록 기억해야 할 상태가 많아 지기 때문이다.. 결국 몇단에 걸친 if 안이라면, 아무리 기억력이 좋아도, 결국 위쪽을 다시 살펴 보고, 다시 코드 리뷰를 해야만 한다. 이것 말고도로 개미처럼 집중력도 ..
PC/UVa ID : 110207/10258 시작하기에 앞서... 이 문제를 통해서 다시 한번 생각하게 된 것은 "명확하게 문제가 무엇인지 파악하는 것" 이 알고리즘 개발의 제일 첫번째 할 일 이라는 것 이다. 이번 문제를 잘 이해 하지 못해서, 여러곳의 글들을 보았지만, 다들 각자 다르게 이해를 했는지, 각자 말하는게 달랐다. 그래서 우선 내가 이해한데로 풀고, 문제의 모범 답안(?)을 보고 코드 리뷰를 했다. 이제서야 "점수 개산 방법"이 무엇인지 알게 되어 정리를 하게 된다. 개요 ACM ICPC의 점수 계산법을 구현하여, 참가팀에 모든 순위를 매기어 정렬시키고 1등 부터 꼴찌까지 출력 하라는 내용이다. 각 팀의 순위는 제일 많은 문제를 맞춘 순이며, 만약 맞춘 갯수가 동일한 팀이 있다면, 벌점이 ..
최근댓글