對(duì)自定義對(duì)象的向量進(jìn)行排序如何對(duì)包含自定義(即用戶定義)對(duì)象的向量進(jìn)行排序??赡?,標(biāo)準(zhǔn)STL算法排序應(yīng)該使用在自定義對(duì)象中的一個(gè)字段(作為排序鍵)上操作的謂詞(函數(shù)或函數(shù)對(duì)象)。我在正確的軌道上嗎?
3 回答

料青山看我應(yīng)如是
TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超8個(gè)贊
C+11
#include <vector>#include <algorithm>using namespace std;vector< MyStruct > values;sort( values.begin( ), values.end( ), [ ] ( const MyStruct& lhs, const MyStruct& rhs ){ return lhs.key < rhs.key;});
C+14
#include <vector>#include <algorithm>using namespace std;vector< MyStruct > values;sort( values.begin( ), values.end( ), [ ] ( const auto& lhs, const auto& rhs ){ return lhs.key < rhs.key;});

繁花不似錦
TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超4個(gè)贊
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() );}
- 3 回答
- 0 關(guān)注
- 614 瀏覽
添加回答
舉報(bào)
0/150
提交
取消