{ 술어 : predicate 란 true/false 로 리턴하는 함수 객체를 말한다. 왜 순수한 함수로 만들어야 하는가? 알고리즘 속으로 들어간 함수 객체는 그 값이 복사에 의해서 구현부 쪽으로 전달 되어 진다. 이 과정에서 함수 객체의 상태의 현재 상태가 유지되며 전달되기가 어렵기 때문에, 아예 순수하게 만들어서, 사용하는게 더 편하다는 의미에서 순수한 함수로 만들어야 한다는 것이다. 몇가지 술어 함수 만드는 일반론이 있는데, operator() 를 const 로 만들고, 가상 함수가 없도록 하고, 내부 데이터를 쓰지 않는다 라는 일반론이다. 이 이야기는 pimple 이디엄과 맞물리면서 꽤 좋게 생각된다. ^^ 반드시 상태를 가지는 함수 객체여야 한다면, 내부 데이터가 포인터로 유지되게 하면 된다. ..
Predicate 검색 결과
판단자라 불리는 이것은 predicate 를 말하는 것이다. 이 predicate 는 저번에도 언급했드시 술어 구문 함수 오브젝트로 쉽게 생각해 클래스(구조체)의 bool operator()( T ) 을 정의하여, 함수 오브젝트로 사용 하는 객체를 가리킨다. 자세한 내용은 http://ikpil.com/608 을 참고. 1. std::remove() 알고리즘이 하는 일을 구체적으로 설명 하라. 참조 : http://ikpil.com/598 2. std::vector에서 3의 값을 갖는 모든 요소를 지우는 코드를 작성 하라. #include #include int main( void ) { std::vector abcdefg; for( int iii = 0; iii < 10000; ++iii ) { abc..
내가 STL에 조예가 깊어서 글을 남기는 것이 아니라, Effecitve STL 을 공부하는 사람들이 이 글을 보고, 도움이 되었으면 하는 생각과, 혹시 내가 틀린것이 있다면 지적해 주시지 않을까 란 생각으로 글을 올리는것임을 미리 밝힙니다. - 최익필 주제에 들어가기에 앞서, 술어구문? 순수 함수? 무슨 뜻인지 알아보자. 술어구문(predicate) 이란? bool 값을 반환하는 함수를 뜻하는데 번역 단계에서 우리나라말 선택시 조금 어려운 부분이기도 하다. 자세한 내용은 링크 : http://occamsrazr.net/tt/82 에서 아~ 그렇구나 하고 넘기길 바란다. 순수 함수(pure function) 이란? 순수 가상 함수는 알겠는데 이건 참 생소한 말이였다. 이것은 매개변수로 함수의 리턴값이 결..
최근댓글