对指向自定义对象的指针的 QVector 进行排序

Sort QVector of pointers to custom objects

我的问题:

QVector<Camera*> 中的每个 Camera 分配数字的最佳方法是什么,其中应适用以下规范:


来源:

class Camera {
    int number;
    QString macAddress;
}

当前解法:

我目前的解决方案是:


编辑:我现在的问题是:有没有更好的方法来完成这个?

您的解决方案没有任何问题。它对向量进行了很好的排序。但这里似乎有问题:

for(quint8 i = 0; i < tempVector.size(); i++) {
    cameras->at(i)->setNumber(i);
}

此代码设置每个摄像机的 number,它在 原始 向量中的索引,而不是排序后的向量。我认为应该替换为:

for(quint8 i = 0; i < tempVector.size(); i++) {
    int number = tempVector.indexOf(cameras.at(i));
    cameras->at(i)->setNumber(number);
}