Permalänk
Medlem

C++ vector sortering

Hejsan jag har fasnat med ett jobbigt problem...

Jag har en vector<int>pos;

som man sen får sätta värden i allt mellan 1-10000
Men max 20 olika värden, i vilken ordning man vill.

Nu till problemet, jag lyckas ej hitta ett smidigt sätt att sedan sortera vectorn till storleks ordning.

tex: [23] [543] [234] [21]

ska bli: [21] [23] [234] [543]

Mvh Ezey.

Permalänk
Medlem

Inkludera headern algorithm och kör:

sort(pos.begin(), pos.end());

Permalänk
Medlem
Skrivet av htux:

Inkludera headern algorithm och kör:

sort(pos.begin(), pos.end());

Att det ska va så enkelt... Tack! testar nu

Permalänk
Inaktiv

Tror du förväntas använda bubble sort eller liknande

http://en.wikipedia.org/wiki/Bubble_sort

Permalänk
Hedersmedlem

Insertion sort tycker jag annars är en relativt enkel algoritm.

http://en.wikipedia.org/wiki/Insertion_sort

Permalänk
Medlem

Att implementera merge-sort är inte heller några större problem.

http://en.wikipedia.org/wiki/Merge_sort

Permalänk
Datavetare
Skrivet av htux:

Inkludera headern algorithm och kör:

sort(pos.begin(), pos.end());

Kör man med nyare variant av GCC eller Visual Studio 2012 bör man skriva

sort(begin(pos), end(pos));

då det är det rekommenderade sättet i C++11. Fördelen med detta är att std::sort nu även direkt kan användas på C-style arrayer och även på Microsoft specifika "containers" som finns i WinRT.

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Medlem
Skrivet av Yoshman:

Kör man med nyare variant av GCC eller Visual Studio 2012 bör man skriva

sort(begin(pos), end(pos));

då det är det rekommenderade sättet i C++11. Fördelen med detta är att std::sort nu även direkt kan användas på C-style arrayer och även på Microsoft specifika "containers" som finns i WinRT.

Hade aldrig hört talas om dem tidigare. Tack för att du informerade mig!