Здравствуйте, Аноним, Вы писали:
А>Добрый вечер всем!
А>Есть пара тупых вопросов про std::set. Компилятор — Visual C++ 2010.
А>1. Как в следующем коде сделать так, что внутри set элементы сортировались не по значениям указателей, а по значениям того, на что указывают указатели?
bool bByPtrIntLess( int *p1, int *p2)
{
return *p1 < *p2;
}
set<int*, bByPtrIntLess> set3, set4;
А>2. Как сделать так, чтобы при этом срабатывало равенство set3 == set4? Сейчас оно не срабатывает.
Пройдись по элементам первого сета и поищи их во втором. Если хоть один не нашелся, то не равны. Перед началом сравни размеры, если разные, то множества точно не равны.
Я как-то задался подобным вопросом, поковырял stl, там что-то было подходящее, но оно как-то не так работало, как я хотел, сделал как выше.