STL map의 비교함수자 제공하는 코드

필요할때마다 잊는지라, 이곳에 메모해 봅니다.. ^^

#include 


using namespace std;

class Standard {
private:
	int a;
public:
	Standard(int a) {
		this->a = a;
	}

	int Get() {
		return a;
	}
};

class Value {
public:
	Standard *pStandard;
	Value(Standard *pStandard) {
		this->pStandard = pStandard;
	}
};

class CustomCompare {
public:
	bool operator()(Standard* s1, Standard* s2) const {
		return s1->Get() == s2->Get();
	}
};

int main(int argc, _TCHAR* argv[])
{
	map container;

	Standard *pStand1 = new Standard(10);
	Value *pValue1 = new Value(pStand1);
	
	Standard *pStand2 = new Standard(20);
	Value *pValue2 = new Value(pStand2);

	container[pStand1] = pValue1;
	container[pStand2] = pValue2;

	Standard *pStand3 = new Standard(20);

	printf("%d\n", container[pStand3]->pStandard->Get());

	delete pStand3;
	delete pStand1;
	delete pStand2;
	delete pValue1;
	delete pValue2;

	return 0;
}

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다