일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- UE4
- 티스토리챌린지
- 상속
- effective stl
- operator new
- 반복자
- 암시적 변환
- 참조자
- Effective c++
- 영화 리뷰
- more effective c++
- 언리얼
- reference
- 스마트 포인터
- implicit conversion
- 오블완
- 비교 함수 객체
- resource management class
- Smart Pointer
- 메타테이블
- 게임
- 영화
- 예외
- Vector
- 다형성
- exception
- c++
- 루아
- lua
- virtual function
- Today
- Total
목록Algorithm (3)
스토리텔링 개발자
항목 44. 같은 이름을 가진 것이 있다면 일반 알고리즘 함수보다 멤버 함수가 더 낫다 알고리즘과 같은 이름의 멤버 함수연관 컨테이너countfindlower_boundupper_boundequal_rangelistremoveremove_ifuniquesortmergereverse 멤버 함수가 더 나은 이유멤버 함수가 더 빠르다.멤버 함수가 해당 컨테이너와 더 잘 맞물려 있다.사실, 같은 이름의 알고리즘과 멤버 함수는 대개 정확히 똑같은 동작을 하진 않기 때문에 차이가 난다. 연관 컨테이너 예시set s;... // 1,000,000개의 값을 넣는다.// 멤버 함수 사용// 로그 시간에 실행된다.set::iterator i = s.find(727);if(i != s.end()) ...// 알고..
항목 43. 어설프게 손으로 작성한 루프보다는 알고리즘이 더 낫다 알고리즘은 루프모든 알고리즘은 보통 최소 두 개의 반복자(시작 반복자, 끝 반복자)를 받는다.즉, 내부적으로 보면 알고리즘은 루프이다.class Widget{public: ... void redraw() const; ...};list lw;...// 다음 작업은..for(list::iterator i = lw.begin() ; i != lw.end() ; ++i){ i->redraw();}// 알고리즘으로 똑같이 할 수 있다.for_each(lw.begin(), lw.end(), mem_fun_ref(&Widget::redraw)); 루프보다 알고리즘이 나은 이유효율(Effeciency)알고리즘은 프로그래머가 ..
항목 30. 알고리즘의 데이터 기록 범위(destination range)는 충분히 크게 잡자 컨테이너 요소 삽입 시int transmogrify(int x); // 정수 x를 받아 어떤 새로운 값을 만드는 함수vector values;... // values에 데이터를 넣는다.// values 요소들에 transmogrify를 적용하고 result에 삽입한다.// 하지만, 버그가 있다.vector results;transform(values.begin(), values.end(), results.end(), transmogrify);transform 결과 기록 순서values[0]을 매개변수로 가져온다.transmogrify를 호출하여 값을 변환한다.*results.end()에 대입한다.values..