Sortowanie obiektów w vectorze według jego zmiennej

0

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());
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1