Ich versuche, verschiedene Arten von Arrays von der kleinsten zur größten Reihenfolge mithilfe von Vorlagen zu sortieren.Verwenden von Vorlagen zum Sortieren von Zeichenfolgen und Zeichen
Obwohl ich das int-Array korrekt sortiert habe, konnte ich die Zeichen- oder String-Arrays nicht sortieren. Ich bekam immer einen Fehler, der sagte "keine passende Funktion für den Aufruf von bsort (char [10], int)" und "bsort (std :: string [10], int)". Was mache ich falsch?
In meiner Vorlage dachte ich, dass ich es durch die "Object" -Deklaration allen verschiedenen Typen entgegenbringen würde.
#include <iostream>
#include <string>
using namespace std;
template <class Object>
void bsort(Object a[], Object n)
{
for (int i=0; i<n-1; i++)
{
for (int j=i+1; j<n; j++)
{
if(a[i]>a[j])
{
Object item;
item=a[i];
a[i]=a[j];
a[j]=item;
}
}
}
}
int main()
{
int intarray[10]= {50, 10, 20, 15, 62, 32, 6, 80, 90, 100};
char chararray[10]= {'a', 'f', 'v', 'b', 'c', 's', 'm', 'i', 'j', 'i'};
string stringarray[10]= {"hi", "how", "are", "you", "today", "love", "eating", "food", "brownies", "icecream"};
cout<<"The intarray consists of"<<endl;
for (int i=0; i<10; i++)
cout<<intarray[i]<<endl;
cout<<"The sorted intarray sorted is"<<endl;
bsort(intarray, 10);
for (int i=0; i<10; i++)
cout<<intarray[i]<<endl;
cout<<"Sorted char array"<<endl;
bsort(chararray, 10);
for (int i=0; i<10; i++)
cout<<chararray[i]<<endl;
cout<<"The sorted stringarray is"<<endl;
bsort(stringarray, 10);
for (int i=0; i<10; i++)
cout<<stringarray[i]<<endl;
return 0;
}
** bearbeiten, habe ich versucht, dass a [] auf den ersten, aber es hat immer noch nichts tun, um die Sortierung zu ändern/Fehler, dass es mich gab
Noch besser noch, 'Vorlage void bsort (ITERATOR beginnen, ITERATOR Ende)' –
SergeyA
@SergeyA: Oder noch besser, verwenden Sie 'std :: sort' direkt :-) – Jarod42