Mam problem z posortowaniem vectora i szukam jakiegoś dobrego pomysłu jak można to zrobić. Jedyne co mi przychodzi do głowy (dzięki pomocy @fasadin) to posortować samemu przez np. sortowanie bąbelkowe lub przeszukiwać vector szukając który obiekt ma największą liczbę, a następnie przeniesienie go do vectora drugiego.
Tu się zwracam z pomocą, może jest jakiś inny, lepszy sposób? Lub wiecie jak zrobić to przez std::sort.
Tutaj mój kod:
class layer
{
public:
layer();
void sortSprites();
int getPriority(sprite *s);
std::vector<sprite*> sprites;
};
int layer::getPriority(sprite *s)
{
return s->priority;
}
void layer::sortSprites()
{
std::sort(sprites.begin(), sprites.end(), getPriority();
}
Próbowałem właśnie przez std::sort to zrobić, no ale niestety jakkolwiek bym tego nie zrobił, to wywala błąd.
i klasa sprite:
class sprite
{
public:
sprite(std::string dest, int prior);
int priority;
std::string destinationOfImage;
private:
SDL_Surface *spriteSurface;
};
sprite::sprite(std::string dest, int prior)
{
destinationOfImage = dest;
priority = prior;
SDL_Surface *spriteSurface = SDL_LoadBMP(destinationOfImage.c_str());
}