据我了解快速排序,如果成员的洗牌与拷贝构造函数完成后,你会由什么Ø(ñ LN n为非常失望)的意思。所以我决定测试qSort
与Qt的:快速排序,而无需使用拷贝构造函数
QList<QObject> mylist; //Yes, I know this isn't feasible, I just wanted to find where the copy ctor is being used
qSort(list);
和腹背受敌与
'的QObject :: QObject的(常量的QObject &)' 是私有
错误。从我所知道的,问题与begin()
方法开始,因为如果我有
list.begin();
编译器错误表明该qlist.h线以某种方式试图使用拷贝构造函数:
inline void detach() { if (d->ref != 1) detach_helper(); }
我意识到我可以创建列表的成员指针,然后实现lessThan
函数,但这对于此代码库不太方便。那么,如何在qSort
在对象列表上操作时避免使用复制ctor?
我在Linux 64位和32位上使用Qt 4.8。
我不使用qt,但可以设置一组从0到最大项目数-1的索引。然后,对索引进行排序,而不是对列表进行排序,并使用它来引用数据。 – PaulMcKenzie
@PaulMcKenzie比使用指针更好吗? – Opux
是的,它比指针“更好”,因为它不需要指针。我可以发布一个答案,但它将适用于使用'std :: sort'和'vector',而不是Qt(但是我相信这个原则是相同的)。 – PaulMcKenzie