有没有一种方法可以将QVariant与QVector一起使用
Is there a way to use QVariant with QVector?
有没有一种方法将QVariant
与QVector
?
我需要实现一个函数来比较两个向量,例如:
#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>);
当我尝试运行上述代码时,我会收到以下错误消息:
错误:呼叫" compareVector'
的匹配函数无匹配功能
注意:我正在使用QT 5.3。
当参数类型为 QVector<QVariant>
时,您不能使用QVector<int>
(或QVector<double>
)。
我建议将compareVectors
作为功能模板。
template <typename T>
bool compareVectors(QVector<T> vec1, QVector<T> vec2)
{
qDebug() << "Comparing vectors!";
if( vec1 != vec2 )
{
qDebug() << "The vectors are different!";
return false;
}
qDebug() << "The vectors are equal!";
return true;
}
相关文章:
- 将 Qvector<uint8_t> 转换为 QString
- 正确清洁 QVector
- 在 QVector<std::unique_ptr 上使用 std::find<Type>>
- Qt - QVector 和模型视图 - 从列表视图获取自定义类的最佳方法是什么?
- 阅读 QML 中结构C++ QVector 的 QVector
- QDataStream read to QVector
- 如何创建类似于 QVariant 的变体类
- 将 nullptr QVariant 与空 QString 进行比较,在 Qt5.9 和 Qt5.12 中给出了不同的输
- 调用QVector::保留即使不知道确切的元素数量?
- C++Qt QtConcurrent::filtered从std::shared_ptr的QVector减少
- 从 json 字符串将 QVariant 转换为 QList<MyClass>
- 如何创建可以包含不同小部件的QVector或其他容器
- QT - 如何从 QVector<QComboBox* 获取信号"currentIndexChanged">
- 使用 QVector 创建图形磁贴(QCache 之前的基础知识)
- 如何返回 QVariant 类型数组
- 如何在QtConcurrent::run中启动QTimer或为什么QVector<QTimer*>不起作用
- 如何将 QVariant 转换为 QDomNode
- 有没有一种方法可以将QVariant与QVector一起使用
- 将 QVariant 转换为 QVector<int>
- QVariant只接受QList而不接受QVector或QLinkedList的原因是什么