我试图找出一种方法来以正确的顺序在视觉上绘制多个向量的对象。我知道如何基于点来对矢量进行排序以使事物看起来正确,但我怎样才能跨越多个矢量来做到这一点?将所有不同类型的对象存储在一个向量中似乎是一个糟糕的主意。C++ - 二维Z对象的多个向量排序
0
A
回答
0
创建包含指向在其它载体元件的单个载体,然后排序该矢量(当然使用一个解引用比较运算符)
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
+0
我对C++有点新鲜。这其中大部分都在我的头上。 –
+0
@EvanWard:好的,第一句对你有意义吗?如果是这样,你应该能够找出我代码的最后两行中的_most_。你不一定非得理解'deref_comparitor'是如何工作的。 –
相关问题
- 1. 在C++中对象的向量排序
- 2. 排序多维JSON对象
- 3. 对象的向量排序
- 4. 按第一列排序多维向量
- 5. 排序无空值的多维向量
- 6. 向量,对象和排序
- 7. Initialzing二维向量在C++
- 8. 对象的输出多维向量
- 9. 二维向量
- 10. C++多维向量
- 11. python:类对象的多维排序
- 12. 对二维数组排序
- 13. 使用对象创建二维向量C++
- 14. C++多维排序
- 15. C++排序对象矢量
- 16. C - 按一维排序二维数组
- 17. C++中的多维向量
- 18. 多维的std ::向量(C++)
- 19. 如何排序多维JavaScript对象?
- 20. 使用向量排序使用对象
- 21. 3D对象的Z排序列表
- 22. Scala中对象的向量排序
- 23. 将多维向量更改为二维向量matlab
- 24. std ::只排序多维向量的一维
- 25. 排序向量对
- 26. C++ - 通过其包含的对象属性排序多维矢量
- 27. 通过多个二维数组并对它们进行排序
- 28. C++向量排序
- 29. 排序向量C++
- 30. C++复制多维向量
做一个指数(链接每个对象的z顺序给该对象的位置),然后排序指数 –
IM不知道你的指数是什么意思。 –
就像书后面的索引一样。 “鸭,24.牛,26.鹅,32.马,37”。等等然后您按照要绘制对象的顺序对索引进行排序并遍历,例如在上面的例子中,你会画出马然后鹅然后牛然后鸭。 –