0
QVariant
을 QVector
과 함께 사용하는 방법이 있습니까?QVector에서 QVariant를 사용할 수 있습니까?
나는 예를 들어, 두 개의 벡터를 비교하는 기능을 구현해야합니다 : 예를 들어 매개 변수에 의해 동일한 데이터 유형이 항상 것 통과
#include <QDebug>
#include <QVector>
#include <QString>
bool compareVectors(QVector<QVariant> vec1, QVector<QVariant> vec2)
{
qDebug() << "Comparing vectors!";
if(vec1 != vec2)
{
qDebug() << "The vectors are different!";
return false;
}
qDebug() << "The vectors are equal!";
return true;
}
int main()
{
QVector<double> v1;
QVector<double> v2;
v1 << 1 << 2;
v2 << 3 << 4;
QVector<QString> v3;
QVector<QString> v4;
v3 << "1" << "2";
v4 << "3" << "4";
compareVectors(v1, v1);
compareVectors(v3, v4);
return 0;
}
두 벡터 :
compareVectors(QVector<int>, QVector<int>);
compareVectors(QVector<double>, QVector<double>);
compareVectors(QVector<QColor>, QVector<QColor>);
compareVectors(QVector<QString>, QVector<QString>);
위의 코드를 실행하려고하면 다음 오류 메시지가 표시됩니다.
error: no matching function for call to 'compareVectors'
참고 : Qt 5.3을 사용하고 있습니다.
'QVector'가 아닌'std :: vector'를 사용하십시오. Qt 컨테이너 클래스는 일반적으로 std 컨테이너보다 성능이 떨어지고 여러 가지 이상한 단점이 있으며 더 이상 유지되지 않으며 Qt 사람들도 API 경계를 통해 강제로 사용하는 경우를 제외하고는 사용하지 말 것을 권장합니다. –