사용자 정의 find() 함수를 구현하는 명확한 방법은 무엇입니까? 예를 들어, 연산자 ==가 클래스 X에 대한 찾기를 위해 작업하고, 기존 값에 가까운 변수의 값을 찾으려고합니다.find() 동등 연산자 오버로드
class X{
public:
double _a;
double _b;
double _c;
X(double a, double b, double c){
_a = a;
_b = b;
_c = c;
}
bool operator==(const X& other) const
{
if(fabs(other._a - _a) < 0.02) return true;
return false;
}
};
typedef X* ptrX;
std::vector<ptrX> vec;
ptrX t1 = new X(1,2,3);
vec.push_back(t1);
ptrX t = new X(1.01,2,3);
bool b = (find(vec.begin(),vec.end(),t) == vec.end()); //b should be false
_Why_ 포인터를 사용하고 있습니까? 이 질문에 전혀 불필요한 것으로 보입니다. –
또한 [해당 기능은 이미 온라인 데모 구현과 함께 존재합니다] (http://www.cplusplus.com/reference/algorithm/find/) –
혼란 스럽다는 것 외에도 값 대신 포인터를 사용하고 있다는 사실에 기인합니다. –