내가 STL에 조예가 깊어서 글을 남기는 것이 아니라, Effecitve STL 을 공부하는 사람들이 이 글을 보고, 도움이 되었으면 하는 생각과, 혹시 내가 틀린것이 있다면 지적해 주시지 않을까 란 생각으로 글을 올리는것임을 미리 밝힙니다. - 최익필 항목 43에서 말했던 STL 제작자보다 더 좋게 만들 수 없다면 알고리즘은 더 좋은 성능을 보여줄것이라는 이야기와 일맥상통 한다. 왜냐하면 STL 제작자 중 컨테이너 제작자 보다야 컨테이너에 대해서 더 자세히 알겠는가? 이름 짓기관례상 알고리즘과 동일한 기능을 하는 멤버 함수는 동일한 이름을 갖는다. 그런데 굳이 동일한 기능을 하는데, 멤버 함수로 만들 필요가 있을까? .. 더 뛰어난 성능을 보이기 때문에, 멤버 함수로 만들어 놓은 것이다. map.fin..
Effective STL 검색 결과
내가 STL에 조예가 깊어서 글을 남기는 것이 아니라, Effecitve STL 을 공부하는 사람들이 이 글을 보고, 도움이 되었으면 하는 생각과, 혹시 내가 틀린것이 있다면 지적해 주시지 않을까 란 생각으로 글을 올리는것임을 미리 밝힙니다. - 최익필 루프는 for, while, do~while 이 있다. 하지만 이것만 보면, 이게 어떤 역활을 하는 루프인지 코드를 봐야지만 가능해진다. .. 뭐 .. 알고리즘도 그런 경우가 있긴 하지만 말이다. ㅋ 더 좋다는 이야기로 주제가 흘러 가는데. 그 이유 3가지를 든다. 첫째, 루프보다 알고리즘이 더 빠르다. 물론 알고리즘 내부에도 루프가 있다.(내부 보면 안다) 하지만 STL 제작자보다 사용자가 더 깊게 알기는 힘든면이 많다. 그렇기 때문에 STL 제작자가 ..
내가 STL에 조예가 깊어서 글을 남기는 것이 아니라, Effecitve STL 을 공부하는 사람들이 이 글을 보고, 도움이 되었으면 하는 생각과, 혹시 내가 틀린것이 있다면 지적해 주시지 않을까 란 생각으로 글을 올리는것임을 미리 밝힙니다. - 최익필 모든 프로그래머가 변수명 a 는 test 용도로만 쓴다고 알고 있다고 가정해보자. 그렇다면 모든 프로그래머는 a를 테스트 용도로만 사용함으로써 코드의 가독성이 올라 갈 것이다. 이처럼 많은 프로그래머들이 암묵적으로 몇가지 알고 있다고 믿는 상황이 있따. operator == 두개의 값이 상등성으로 비교한다고 믿는다. 복사생성자는 모든 값을 동일하게 복사된다고 믿는다. 객체의 주소를 받아내면 포인터가 나온다고 믿는다. 그리고... less는 operator..
내가 STL에 조예가 깊어서 글을 남기는 것이 아니라, Effecitve STL 을 공부하는 사람들이 이 글을 보고, 도움이 되었으면 하는 생각과, 혹시 내가 틀린것이 있다면 지적해 주시지 않을까 란 생각으로 글을 올리는것임을 미리 밝힙니다. - 최익필 제목 그대로, 분명하게 쓰이는데가 있다. 각 어댑터의 용도만 알면 쉽게 이해 할수 있을 듯 하다. 우선 적으로 설명해야 할것은, 술어 구문(predicate) 함수 객체를 받는 알고리즘의 경우, 대상 객체를 인자로 operator()가 호출 되는 형식을 취하고 있다. 문제는 1. f(x); 2. x.f(); 3. p->f(); 의 형태의 호출을 다음과 같이 처리해야 한다. 1번은 f 를 함수 객체로 만들며, 이 객체의 operator() 가 x를 받으며 ..
내가 STL에 조예가 깊어서 글을 남기는 것이 아니라, Effecitve STL 을 공부하는 사람들이 이 글을 보고, 도움이 되었으면 하는 생각과, 혹시 내가 틀린것이 있다면 지적해 주시지 않을까 란 생각으로 글을 올리는것임을 미리 밝힙니다. - 최익필 이번 항목은 copy 알고리즘의 술어 구문 copy_if 알고리즘이 없으므로 사용자가 적절히 구현해서 사용 하자라는 취지에서 쓰여진 것이다. copy 알고리즘은 알다시피 구역 반복자( 어디부터 어디까지..)를 받아서 지정한 반복자로 대입해 주는 알고리즘이다 _if는 관례상 술어구문을 받아 들려라 란 의미이다. 이것으로 copy_if 의 경우, 술어구문을 받아들이어 참인것만 복사해라 로 요약할수 있다. 자 그렇다면 copy_if 를 한번 만들어 보자. #i..
내가 STL에 조예가 깊어서 글을 남기는 것이 아니라, Effecitve STL 을 공부하는 사람들이 이 글을 보고, 도움이 되었으면 하는 생각과, 혹시 내가 틀린것이 있다면 지적해 주시지 않을까 란 생각으로 글을 올리는것임을 미리 밝힙니다. - 최익필 이번 항목은 두 알고리즘의 사용 방법을 알아보자는 취지로 이야기 된 것 같다. 그러므로 나는 두 알고리즘의 사용 법을 기준으로 설명을 하도록 한다. 두 알고리즘 전부 algorithm 안에 들어 있다. 각각 어떻게 사용 하는지, 그 소스코드를 보자. 1. mismatch #include #include #include int main( void ) { int a[10]; std::vector v(10); for( int i = 0; i < 10; i++ ..
최근댓글