Привет, Я пытаюсь написать обобщенную функцию сравнения isLess для int, double, null terminated character array и т. Д. Ниже мой код такой же, пожалуйста, помогите я понимаю, как мы можем использовать эту функцию для строк с нулевым завершением.C++ Как написать обобщенную функцию компаратора для int, double, string и т. Д. С помощью шаблонов
#include<iostream>
using namespace std;
template<typename T>
bool isLess(T &x, T &y)
{
return x < y;
}
int main()
{
int a(10), b(20);
double c(2.0), d(3.0);
cout<<isLess<int>(a,b)<<endl;
cout<<isLess<double>(c,d)<<endl;
//For above types, generic comparator works fine
//but if we have to compare character represented string, how can we do this in our comparator
//assume charaters strings are compared the same way as strcmp.
//char *e = "str1";
//char *f = "str2";
//cout<<isLess<char*>(e,f)<<endl;
return 0;
}
Использование специализации шаблона для 'сопзЬ полукокса *' на основе 'STRCMP)' функции (? –
Что означает, что строка должна быть «меньше» другой строки? Как вы можете обобщить это на произвольные типы? Вам нужны специальные указания. –
Добавьте некоторую константную корректность к вашему коду. –