• Qlist的使用


    #IT行业哪个方向比较好就业?#

    刚好今天在使用QFile的时候,需要做一个获取本地的文件夹名称,在这里我使用的代码如下所示:

    1. QDir folder(ui->lineEdit_7->text()); // 当前文件夹
    2. QStringList filters;
    3. filters << "*.*/"; // 文件夹过滤器,包括子文件夹
    4. QList directories = folder.entryInfoList();
    5. for (const QFileInfo& dir : directories) {
    6. qDebug() <<"文件夹名称" <fileName(); // 输出每个文件夹的路径
    7. }

    于是我就思考想弄一哈QList和QStringList它们两个之间的对比。

    QList和QStringList都是Qt库中的类,它们的主要区别在于用途和功能。

    QList是一个通用、高效的列表类,它提供了对列表的基本操作,如添加、删除、查找等。它是一个模板类,可以存储任意类型的对象,如整数、浮点数、字符串等。QList的主要优点是它的通用性和高效性,它适用于各种不同的数据类型和需求。

    1. 存储和操作列表数据:QList可以用于存储任意类型的对象,并且提供了方便的函数和操作符来对列表进行插入、删除、查找等操作。
    2. 事件处理:QList可以用于存储事件处理函数的参数,并且可以在事件触发时调用这些函数。
    3. 缓存数据:QList可以用于缓存数据,特别是在需要频繁访问的情况下。
    4. 存储和排序数据:QList可以用于存储和排序一组数据,并且可以使用QList::sort()函数来对列表进行排序。
    5. 存储和操作多维数组:QList可以用于存储和操作多维数组,并且可以使用QList::append()函数来添加元素。

    另外C++里面也有类似的通用容器,叫vector,这个两者之间的区别是:

    QList和C++中的vector在功能上有些相似,它们都是动态数组,可以动态地添加和删除元素。但是,它们之间也存在一些区别:

    1. 内存管理方式不同:QList是Qt库中的容器类,它自动管理内存,不需要手动释放内存;而vector是C++标准库中的容器类,需要手动管理内存,需要在不再使用元素后释放内存。
    2. 函数接口不同:QList和vector的函数接口不同,它们使用不同的函数来访问和操作元素。例如,QList使用at()函数来访问元素,而vector使用[]操作符。
    3. 性能不同:由于QList自动管理内存,因此它在某些情况下可能比vector更高效。例如,当删除元素时,QList只需要重新分配内存,而vector需要手动移动元素并释放内存。

    总的来说,QList和vector都是动态数组,但它们在内存管理、函数接口和性能方面存在一些区别。选择使用QList还是vector取决于具体的需求和情况。

    其中,QList的自动内存管理机制是通过Qt的内存管理机制来实现的。Qt使用一种称为"对象树"的内存管理策略,其中每个对象都有一个父对象,当一个对象不再需要时,它的父对象会负责释放它的内存。

    对于QList来说,它的每个元素都是一个动态分配的对象,当QList被销毁时,它会自动释放所有元素的内存。这是通过在QList的析构函数中调用元素对象的delete操作符来实现的。

    另外,QList还使用了一个内存池机制来优化内存分配。每次调用QList的append()函数时,它都会将新元素存储在一个内存池中,而不是直接分配新的内存。当内存池达到一定大小后,QList会一次性释放整个内存池的内存,这样可以减少内存分配和释放的开销,提高性能。

    QStringList是一个专门用于处理字符串的列表类,它是QString的子类。它继承了QString的所有功能,并提供了额外的操作,如合并字符串、拆分字符串、根据索引查找字符串等。QStringList的主要优点是它的字符串处理功能,它使得处理字符串变得更加方便和高效。

  • 相关阅读:
    力扣打卡之单调栈问题
    AI高考志愿填报:大厂神仙打架,考生付费围观
    深度学习之视频分类项目小记
    2.6、物理层-真题
    CUDA小白 - NPP(4) 图像处理 Data Exchange and Initialization(2)
    prometheus 监控实战篇
    使用fgetc求文件的行数
    IIS6.0 PUT上传漏洞
    Java8 stream处理List,Map总结
    寒气难抵,跨境电商年底仍有一批卖家要出局!
  • 原文地址:https://blog.csdn.net/Helloorld_1/article/details/133990234