Sortieralgorithmus
-
Ich möchte einfach nur mal nen Sortieralgorithmus zum Luafen bringen, aber es geht nicht:
#include <iostream.h> template <class itemType, class indexType=int> void QuickSort(itemType a[], indexType l, indexType r) { static itemType m; static indexType j; indexType i; if(r > l) { m = a[r]; i = l-1; j = r; for(;;) { while(a[++i] < m); while(a[--j] > m); if(i >= j) break; std::swap(a[i], a[j]); } std::swap(a[i],a[r]); QuickSort(a,l,i-1); QuickSort(a,i+1,r); } } int main (void) { int *pArray = new int[10]; pArray[0]=1; pArray[1]=7; pArray[2]=19; pArray[3]=53; pArray[4]=42; pArray[5]=17; pArray[6]=19; pArray[7]=12; pArray[8]=99; pArray[9]=11; QuickSort<int[],int>(pArray,0,9); for (int i=0; i<10; i++ ) { cout <<pArray[i]<< endl; } return 0; }Fehler:
warning C4519: Standard-Vorlagenargumente sind nur für eine Klassenvorlage erlaubt; wird ignoriert
error C2664: 'QuickSort' : Konvertierung des Parameters 1 von 'int *' in 'int [][1]' nicht moeglich
Die Typen, auf die verwiesen wird, sind nicht verwandt; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat
Ich verzweifele noch, da ich java gewöhnt bin und dort ich auch so "java stil mäßig" denke!
Was muß ich verändern damit es geht?
-
template <class itemType, class indexType> //.. // der compiler schafft es selbst aufzulösen wenn du willst kannst du es mit angeben QuickSort(pArray,0,9);zu iostream
http://fara.cs.uni-potsdam.de/~kaufmann/?page=GenCppFaqs&faq=iostream#Answ