Mam taki kod :
#include <iostream>
#include <algorithm>
#include <vector>
#include <cstdlib>
using namespace std;
template <class parametr_1, class parametr_2>
bool compare(parametr_1 argument1, parametr_2 argument2)
{
return argument1 > argument2;
}
int main()
{
vector<int> wektor_int(1);
srand(time(NULL));
for (int i = 1; i <= 10; i++)
{
wektor_int.push_back(rand()%100);
}
sort(wektor_int.begin(),wektor_int.end(),compare);
for (vector<int>::iterator iterator = wektor_int.begin(); iterator != wektor_int.end(); iterator++ )
{
cout<<*iterator<<endl;
}
return 0;
}
Chciałbym żeby funkcja compare dobrała sobie typ danych na których będzie operować w zależności od tego jakie dane dostanie. Zrobiłem szablon (znam przeciążanie funkcji ale chciałbym zrobić to w ten sposób), jednak sort nie chce przyjąc funkcji z szablonu... Od kompilatora dostaję :
error: no matching function for call to ‘sort(__gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >, __gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >, <unresolved overloaded function type>)’|
Będę wdzięczny za wszelkie sugestie, w jaki sposób można to wykonać.