Как сделать реквизит обязательным для использования при использовании функции «createElement»

Вы можете использовать функтор в качестве третьего аргумента std::sort, или вы можете определить operator< в своем классе.

struct X {
    int x;
    bool operator<( const X& val ) const { 
        return x < val.x; 
    }
};

struct Xgreater
{
    bool operator()( const X& lx, const X& rx ) const {
        return lx.x < rx.x;
    }
};

int main () {
    std::vector<X> my_vec;

    // use X::operator< by default
    std::sort( my_vec.begin(), my_vec.end() );

    // use functor
    std::sort( my_vec.begin(), my_vec.end(), Xgreater() );
}
0
задан Nandiin Bao 13 July 2018 в 09:26
поделиться