처음에는 객체지향 설계가 가능하기 때문이라고 생각 했다.
하지만 .. 막강 기능 STL 이 있기 때문이 아닐까 하는 생각을 하곤 한다.

다음은 list 문서내에 있던 remove_if의 구조이다.

    template<class _Pr1>
        void remove_if(_Pr1 _Pred)
        {    // erase each element satisfying _Pr1
        iterator _Last = end();
        for (iterator _First = begin(); _First != _Last; )
            if (_Pred(*_First))
                _First = erase(_First);
            else
                ++_First;
        }

_Pred 만 정해주고 return 타입이 bool 형이기만 하면, .. 어떤 데이터간에 ... 리스트에서 삭제가 가능하다.

처음에는 STL map 을 도데체 어디에 쓰길래 좋다라는 걸까라고 내팽쳐두었지만.
역시나 막강했다. 특정값의 분포도 조사로 map이 없다면 몇십줄로 해결할 일을 단 4줄의 코딩으로 끝내버리는 기능..



신고
posted by 농사를 짓는 게임 프로그래머 최익필

댓글을 달아 주세요