簡體   English   中英

對結構的結構列表進行排序

[英]Sorting a struct list of struct

我有兩個結構:

struct memBlock {
    uint32_t  pid;
    uint32_t  moduleSize;
    void*  moduleStart;
};

struct memory{
    uint32_t  memSize;
    uint32_t  memSizeOS;
    uint32_t  chunkSize;
    uint32_t  nextFit;
    list<memBlock> freeMem;
    list<memBlock> usedMem;
};

memory memo;

我想按 moduleSize 的升序對備忘錄的 freeMem 列表進行排序。

我怎樣才能做到這一點?

我試過這個:

sort( memo.freeMem.begin( ), memo.freeMem.end( ), 
                []( const memory& a, const memory&b ){
                return a.freeMem < b.freeMem;
            } );

但我不知道如何指定排序應該考慮 moduleSize 變量。

解決方案:

memo.freeMem.sort([]( memBlock a,memBlock b){return a.moduleSize<b.moduleSize;});

可能你想要這樣的東西:

sort( memo.freeMem.begin( ), memo.freeMem.end( ), 
   []( const memblock& a, const memblock&b ){
   return a.moduleSize < b.moduleSize;
} );

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM