C++ soretera standard array med STL ?

Permalänk
Medlem

C++ soretera standard array med STL ?

Hej !

Någon som vet om man på något sätt kan få C++ att sortera en standardarray med sort från STL ?
Givetvis går det att först skapa en std::vector<double> från arrayen, men jag vill inte göra någon kopiering av listan eftersom det tar onödig tid.
Går det kanske på något sätt att använda reinterpret_cast här på något smart sätt ?

Visa signatur

Namn : Jesper | Ålder : 45 | In-game namn : iller
Yrke : Matematisk modellerare (finansiell matematik), mjukvaruutvecklare för risksystem.
Utbildning : Doktor i matematik + en del mat-stat, numme och IT-relaterat.

Permalänk
Medlem

Hur vanliga sort ska användas för en standardarray vet jagej. Dock borde qsort kunna lösa ditt problem om det främst är en sortering du är ute efter och inte denspecifika funktionen sort.

Visa signatur

Efter att ni har läst det här har ni insett att det inte gav något.

Permalänk
Medlem
Skrivet av Kuufukuji:

Hur vanliga sort ska användas för en standardarray vet jagej. Dock borde qsort kunna lösa ditt problem om det främst är en sortering du är ute efter och inte denspecifika funktionen sort.

Tack för tipset, ska testas !
Nej, det behöver inte vara just den specifika STL sorteringsfunktionen. Anledningen till att jag vill/ville använda den är att den är snabb.
Vet inte hur snabb den där qsort är, men det lär jag snart märka

Visa signatur

Namn : Jesper | Ålder : 45 | In-game namn : iller
Yrke : Matematisk modellerare (finansiell matematik), mjukvaruutvecklare för risksystem.
Utbildning : Doktor i matematik + en del mat-stat, numme och IT-relaterat.

Permalänk
Medlem

Du kan använda sort från <algorithm> rakt av, eftersom iteratorer och pekare är utbytbara mot varandra som templateargument.

#include <algorithm> #include <iostream> using namespace std; int main() { int arr[10] = { 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 }; sort(arr, arr + 10); for(int i = 0; i < 10; ++i) cout << arr[i] << endl; return 0; }

Visa signatur

void@qnet
teeworlds, stålverk80, evil schemer, c, c++
Languages shape the way we think, or don't.

Permalänk
Medlem
Skrivet av jdv:

Du kan använda sort från <algorithm> rakt av, eftersom iteratorer och pekare är utbytbara mot varandra som templateargument.

#include <algorithm> #include <iostream> using namespace std; int main() { int arr[10] = { 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 }; sort(arr, arr + 10); for(int i = 0; i < 10; ++i) cout << arr[i] << endl; return 0; }

Det var som fan..
Här har man krånglat till det i onödan. qsort fungerade visserligen bra, men fungerar den vanliga sort i STL så tar jag hellre den. Antagligen är den snabbare och det är ju alltid bra att blanda in så få onödiga funktioner som möjligt.
Tack för tipset !

Visa signatur

Namn : Jesper | Ålder : 45 | In-game namn : iller
Yrke : Matematisk modellerare (finansiell matematik), mjukvaruutvecklare för risksystem.
Utbildning : Doktor i matematik + en del mat-stat, numme och IT-relaterat.

Permalänk
Medlem

Räkna dock med rejält förhöjda kompilerings/länk-tider då du använder STL och templates. Det genereras mycket kod som sedan måste rensas upp, eftersom templateinstanser hamnar i varje objektfil de används och sedan måste rensas.

Visa signatur

void@qnet
teeworlds, stålverk80, evil schemer, c, c++
Languages shape the way we think, or don't.