2013-03-12 2 views
0

객체의 사용자 정의 클래스에 대해 std::find을 오버로드 할 수 있습니까? 그런 다음 평등 연산자를 오버로드하지 않아도됩니다. 컨테이너가 실제 데이터에 대한 (스마트 한) 포인터를 저장한다고 가정 해 봅시다. 데이터 레이아웃이나 저장 모드에 관심이 없습니다. 특정 데이터 멤버를 찾고 싶습니다. ...오버로드 std :: find 사용자 정의 클래스

"도덕적" , 이거? 예를 들어 std::vector<std::shared_ptr<myClass> > 또는 "심지어"사용자 정의 컨테이너가 있습니까? 또는 이런 경우에 항상 std::find_if에 의존해야합니까?

답변

5

관용적 인 해결책은 std::find_if을 사용하고 적절한 조건을 부여하는 것입니다.

이렇게하면 작성하고 유지해야하는 코드가 최소한 유지되어 특정 컨테이너 유형과의 연결이 끊어집니다.

관련 문제