Как создать класс, который принимает шаблон компаратора, например std::less<T>
или std::equal_to<T>
, как std::multiset
и std::set
делать?Как создать класс со компаратором?
2
A
ответ
0
Это может помочь:
template <class T, class Comparator = std::less<T>>
class MyClass
{
bool compare(const T& lhs, const T& rhs) const { return Comparator()(lhs, rhs); }
// stuff
};
class A
{
public:
bool operator < (const A& rhs) const;
};
MyClass<A> myClass;
0
template <class T, class Comparator = std::less<T>>
class MyClass
{
//...
}
В функции члена, что-то вроде: -
void MyClass::Myfun(X x, Comparator mycomp = Comparator())
{
if (mycomp(data1,data2))
//...
}
0
В STL контейнеры фактически хранить экземпляр компаратора, так что вы хотите ближе к настоящему времени:
template <class T, class Comparator = std::less<T>>
class MyClass : private Comparator
{
public:
MyClass() {}
MyClass(const Comparator& compare) : Comparator(compare) {}
bool compare(const T& lhs, const T& rhs) const
{
return static_cast<Comparator>(*this)(lhs, rhs);
}
// stuff
};
class A
{
public:
bool operator < (const A& rhs) const;
};
MyClass<A> myClass;
Неправильно e, что вы должны использовать частное наследование, чтобы позволить пустой оптимизации базы данных удалять служебные данные в случае, если Comparator
не содержит никакого состояния.
Смежные вопросы
- 1. Как сортировать это со компаратором?
- 2. Как отсортировать массив со компаратором?
- 3. Java сортировка со компаратором
- 4. Функция сортировки STL со компаратором
- 5. Collections.sort() работает со сравнением или компаратором?
- 6. Как создать класс со следующими требованиями?
- 7. Как создать класс Java со встроенными переменными
- 8. очередь приоритета с пользовательским компаратором
- 9. Как написать класс с общим компаратором для сортировки списка?
- 10. Не удалось создать класс со списком
- 11. Создать новую кнопку со свойствами, используя класс
- 12. Boost сериализуйте карту компаратором
- 13. Как создать класс со всеми свойствами как Static?
- 14. Как создать пустой список, связанный с указанным компаратором (java)?
- 15. Как создать очередь приоритетов с настраиваемым компаратором в линейном времени
- 16. Как создать TreeMap с компаратором на основе «внешних» значений
- 17. Spring создать TreeMap с пользовательским компаратором и заполнить его
- 18. Quicksort С Компаратором
- 19. Проблемы со встроенным компаратором Java для сортировки ArrayList
- 20. Arrays.sort (со компаратором) - такая же или другая тема?
- 21. Договор со сравнительным и компаратором по отношению к нулю
- 22. Класс, который содержит набор себя с пользовательской компаратором - циклическая ссылка
- 23. Как правильно создать класс C# со списком недельных часов работы
- 24. Как создать абстрактный класс со статическим методом фабрики?
- 25. Как создать тесты QUnit со ссылкой на другой класс?
- 26. Как создать класс C# со словарным элементом, использующим XSD?
- 27. Как я могу убежать с непереходным компаратором?
- 28. Как создать класс прямоугольника?
- 29. Список :: содержит с компаратором
- 30. Мондоидный класс со встроенным_и_и_и_и_приложениями
Нет, я хочу создать класс, который принимает ** this ** в качестве параметра шаблона – user2798694
@ user2798694 см. Обновленный ответ – P0W