Я пытаюсь сделать мой вопрос простым здесь.У меня есть одна структура с массивом int в качестве переменной-члена.
struct elem
{
elem (int a, int b, int c) {id[0]=a; id[1]=b; id[2]=c;}
int id[3];
};
Я хочу поместить указатели elem в std :: set, и я хочу использовать find () для поиска конкретного объекта из этого набора позже, поэтому яХотите предоставить пользовательский компаратор для этого std :: set.
struct compare
{
bool operator() (elem *one, elem *two )
{
// logic
}
};
int main(int argc, char* argv[])
{
std::set< elem *, compare> elemSet;
std::set< elem *, compare>::iterator itr;
elem ob1(2,5,9), ob2(5,9,7), ob3(4,3,7);
elemSet.insert(&ob1);
elemSet.insert(&ob2);
elemSet.insert(&ob3);
elem temp(4,3,7);
itr = elemSet.find(&temp);
if(itr != elemSet.end())
{
cout << endl << (*itr)->id[0] << " " << (*itr)->id[1] << " " << (*itr)->id[2];
}
return 0;
}
Не могли бы вы помочь мне с логикой для компаратора?Есть ли общая логика для массива любого размера?