簡體   English   中英

C ++-跨多個對象向量的2D Z排序

[英]C++ - 2D Z-sorting across multiple vectors of objects

我試圖找到一種方法以視覺方式以正確的順序繪制對象的多個向量。 我了解如何基於一個點對向量進行排序以使事物看起來正確,但是如何在多個向量之間做到這一點呢? 將所有不同類型的對象存儲在一個向量中似乎是個壞主意。

創建一個包含指向其他向量中元素的指針的單個向量,然后對該向量進行排序(當然使用解引用比較器)

template<class comparitor>
struct deref_comparitor {
    deref_comparitor(comparitor comp={}): comp(comp) {}
    template<class pointer>
    bool operator()(pointer left, pointer right) {return comp(*left, *right);}
private:
    comparitor comp;
};


std::vector<T*> thingies = {....};
std::sort(thingies.begin(), thingies.end(), deref_comparitor<std::less<T>>());

嗯,我想知道標准庫中是否已經有類似的東西?

看到它在這里工作: http : //coliru.stacked-crooked.com/a/8ed0015a7535b236

暫無
暫無

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

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