【Qt】数组数据类型及用法

数组类

QList:

QList 是Qt中最常见的动态数组类型之一。它可以存储任何数据类型 T,包括基本数据类型(例如 int、double)和自定义类。QList 具有自动扩展和收缩功能,使其非常适合用作动态大小的数组。

QVector:

QVector 也是一个动态数组类型,与 QList 相似,但通常更适合于需要快速随机访问元素的场景。它通常比 QList 更高效,因为它在内部使用连续的内存块。

QByteArray:

QByteArray 用于存储字节数据,通常用于二进制数据或文本数据的字节表示。它提供了一些用于处理字节数据的有用方法。

QStringList:

QStringList 是一个特殊的QList,用于存储字符串列表。它提供了方便的方法来处理和操作字符串列表。

QMap<Key, T>:

QMap 是一个关联数组,它将键和值关联起来。你可以使用键来查找对应的值。QMap 是有序的,键是唯一的。

QHash<Key, T>:

QHash 类似于 QMap,但它不保留元素的插入顺序,因此在某些情况下,它可能比 QMap 更快。键是唯一的。

QSet:

QSet 是一个存储唯一值的集合。它通常用于需要存储一组不重复元素的情况。

std::vector:

虽然不是Qt提供的类型,但你也可以在Qt中使用标准C++库中的std::vector,它是一个动态数组类型,具有高性能和灵活性。

这些数据类型在不同的情况下具有不同的优势和特性,你可以根据你的需求选择最合适的数据类型。例如,如果需要在数组中频繁执行插入和删除操作,QList 或 QVector 可能更合适。如果需要键值对的映射,可以使用 QMap 或 QHash。如果只需要存储唯一值,QSet 可能是一个好选择。

用法

QListQVectorQStringList 是Qt中常用的容器类,用于存储和处理数据。下面我会简要介绍它们的用法:

1. QList

`QList` 是Qt的通用动态数组容器,它可以存储任何数据类型 `T`。以下是 `QList` 的一些常用用法:
- 创建一个空的 `QList`:
    QList myList;
  • 添加元素到 QList
    myList.append(42); // 在末尾添加元素
    myList.prepend(10); // 在开头添加元素
    myList.insert(2, 99); // 在指定位置插入元素
  • 获取元素:
    int value = myList.at(1); // 获取索引为1的元素
    int firstValue = myList.first(); // 获取第一个元素
    int lastValue = myList.last(); // 获取最后一个元素
  • 修改元素:
   myList[0] = 50; // 修改索引为0的元素
  • 移除元素:
    myList.removeAt(3); // 移除索引为3的元素
    myList.removeOne(42); // 移除第一个值为42的元素

2. QVector

QVector 也是一个通用的动态数组容器,与 QList 类似,但通常更适合需要随机访问元素的情况。以下是 QVector 的一些常用用法:

  • 创建一个空的 QVector
    QVector myVector;
    
  • 添加元素到 QVector
    myVector.append(3.14); // 在末尾添加元素
    myVector.insert(2, 2.71); // 在指定位置插入元素
    
  • 获取元素:
    double value = myVector.at(0); // 获取索引为0的元素
    double firstValue = myVector.first(); // 获取第一个元素
    double lastValue = myVector.last(); // 获取最后一个元素
    
  • 修改元素:
    myVector[1] = 1.618; // 修改索引为1的元素
    
  • 移除元素:
    myVector.remove(3); // 移除索引为3的元素
    

3. QStringList

QStringList 是一个特殊的 QList,专门用于存储字符串列表。以下是 QStringList 的一些常用用法:

  • 创建一个空的 QStringList
    QStringList stringList;
    
  • 添加字符串到 QStringList
    stringList.append("Hello");
    stringList << "World"; // 使用 << 运算符添加
    
  • 获取字符串:
    QString value = stringList.at(0); // 获取索引为0的字符串
    QString firstValue = stringList.first(); // 获取第一个字符串
    QString lastValue = stringList.last(); // 获取最后一个字符串
    
  • 修改字符串:
    stringList[1] = "Qt"; // 修改索引为1的字符串
    
  • 移除字符串:
    stringList.removeAt(2); // 移除索引为2的字符串
    stringList.removeAll("World"); // 移除所有值为"World"的字符串
    
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值