emoticon_05
방학중인 좀비군입니다.
방학중이어서 그 동안 부족했었던 STL을 파고 있습니다. vector나 list는 직관적이기 때문에 잘 알아 먹고 있습니다..

만, set에서 살짝 막히는 게 있군요.
살짝입니다 살짝(-ㅅ-)

다름이 아니라

set<int, 비교함수> ret에서 비교함수를 꼭 구조체로 선언해야 하는지 의문입니다.
예를 들어

class ltstr {
public:
        bool operator()(const int i, const int j) const {
                cout << "i = " << i << endl;
                cout << "j = " << j << endl;
                return i > j ;
        }
};

void main()
{
        map<string, int> ret;
}

책의 예제에는 이렇게 나와 있습니다.
그래서 제가 원하는 것은

bool Compare(const int i, const int j)
{
     ... 쏼라쏼라
}

이것을 해 주고
set(int, Compare) ret로 선언을 하는 것인데..

이게 안 먹히네요. 혹시 set의 초기화 방식 중에서 비교함수는 오직 구조체나 클래스로만 선언을 해야 한지 여쭈어 보고 싶었습니다.
=_=) 그리고 오늘 하루종일 set, map, multimap을 파면서 이리저리 뒤적뒤적 해 봤는데요.

개념이 잘 안잡혀서 방황했었습니다. 지금도 잘 잡힌 줄은 모르겠는데, 나름대로 정리해 보겠습니다. 틀린 것이 있다면 태클 환영!

set은 데이터가 어느 특이 순서대로 정열되는 컨테이너 입니다.
map은 키 값과 데이터가 같이 들어가고, 동일한 키값이 들어올 경우 삽입이 되지 않습니다.
multimap은 키 값과 데이터가 같이 들어가고, 동일한 키 값이 들어올 경우 삽입이 됩니다. find로 키값으 찾게 되면 그 키 값의 가장 첫번째 부분의 반복자르 반환해 주지요.

...사실, 이 개념이 잡히지 않아서 오늘 하루 삽질했습니다(바보!!!!)
혹, 틀린 것이 있다면 태클 들어와 주십시오-ㅅ-

그럼 좋은 주말 되세요!