• 【QT】对比C#的ArrayList,qt中也有自己的通用容器(若有误,恳请直接指出)


    在Qt中,可以使用QListQVariantList来代替C#中的ArrayListQList是Qt中的一个通用容器类,类似于C#中的List,但它不是类型安全的。另一方面,QVariantListQList的别名,用于存储可以包含任何类型的QVariant对象的列表。由于您的C#代码中ArrayList存储了不同类型的数据(整数和字符串),在Qt中使用QVariantList可能更合适。

    C#代码

    private ArrayList RecieveAFData = new ArrayList();
    RecieveAFData.Add(45);
    RecieveAFData.Add("hello");
    
    • 1
    • 2
    • 3

    Qt C++代码

    #include 
    
    class MyClass {
    private:
        QVariantList RecieveAFData;
        
    public:
        MyClass() {
            RecieveAFData.append(45);
            RecieveAFData.append("hello");
        }
    };
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    QVariantList是Qt框架中的一个类型,实质上是QList的别名。QVariant是一个非常灵活的数据类型,能够存储Qt中的许多不同类型的值,包括基本数据类型(如int和double)、QString、QDate、QTime、以及自定义类型等。由于QVariant可以存储不同类型的数据,QVariantList因此可以用来存储一个包含多种类型元素的列表。

    简单来说,QVariantList是一个可以容纳任何类型的动态数组。

    代码示例

    以下是一个QVariantList的简单使用示例:

    #include 
    #include 
    #include 
    #include 
    
    int main() {
        // 创建一个QVariantList
        QVariantList myList;
    
        // 向QVariantList添加不同类型的数据
        myList << 10;                   // 添加一个整数
        myList << 15.5;                 // 添加一个浮点数
        myList << "Hello, world!";      // 添加一个字符串
        myList << QVariant(QDate::currentDate()); // 添加一个QDate
    
        // 遍历和打印QVariantList中的元素
        for (const QVariant &item : myList) {
            qDebug() << item;
        }
        //取元素并将其转换为QString的示例
         // 获取第一个元素并转换为QString
        QVariant firstElement = myList.at(0); // 或者 myList[0]
        QString firstElementStr = firstElement.toString();
    
        qDebug() << "First Element as QString:" << firstElementStr;
    
        // 直接转换并输出第二个元素
        qDebug() << "Second Element as QString:" << myList.at(1).toString();
    
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31

    因为QVariant能够自动转换为多种类型,它在Qt中广泛用于数据存储和传递,特别是在需要处理多种数据类型的情境下。例如,在使用Qt的模型-视图编程、动态属性系统或进行JSON处理时,QVariantQVariantList的这种灵活性显得尤为重要。

  • 相关阅读:
    Transformers入门:实战Ubuntu使用huggingface上的语句情感分类模型+配环境(2024.02.20)
    布隆过滤器Moudule安装
    软件项目管理
    Excel 转为 PDF,PNG,HTML等文件
    SAP ABAP给指定用户增加SAP ALL权限
    Perl-->文件的操作
    SpringBoot实现统一异常处理
    关于建立开放的学术论文共享平台的倡议
    websocket定时推送数据
    数据仓库搭建ADS层
  • 原文地址:https://blog.csdn.net/weixin_44939430/article/details/136511764