QVector 遍历

QVector 是 Qt 框架中的一个模板类,用于存储同类型的元素。它类似于 C++ 标准库中的 std::vectorQVector 提供了多种方法来遍历其元素,包括传统的索引访问、迭代器以及 Java 风格的迭代器(QListIterator 和 QMutableListIterator)。下面我们将逐一介绍这些方法。

1. 使用索引遍历

最直接的方法是使用索引进行遍历,这种方法适用于需要访问元素索引的场景。

QVector<int> vector = {1, 2, 3, 4, 5};  
for (int i = 0; i < vector.size(); ++i) {  
    qDebug() << vector[i];  
}

2. 使用 const 迭代器遍历

如果你不需要修改容器中的元素,可以使用 const_iterator。这种方法可以保证在遍历过程中不会修改容器中的元素。

QVector<int> vector = {1, 2, 3, 4, 5};  
for (QVector<int>::const_iterator it = vector.constBegin(); it != vector.constEnd(); ++it) {  
    qDebug() << *it;  
}

3. 使用迭代器遍历

如果你需要在遍历过程中修改容器中的元素,可以使用迭代器 iterator

QVector<int> vector = {1, 2, 3, 4, 5};  
for (QVector<int>::iterator it = vector.begin(); it != vector.end(); ++it) {  
    *it *= 2; // 将每个元素翻倍  
    qDebug() << *it;  
}

4. 使用范围基 for 循环 (C++11)

如果你使用的是 C++11 或更高版本,可以使用范围基 for 循环来简化遍历。这种方法既简洁又易于理解。

QVector<int> vector = {1, 2, 3, 4, 5};  
for (const int &value : vector) {  
    qDebug() << value;  
}  
  
// 如果需要修改值,可以去掉 const  
for (int &value : vector) {  
    value *= 2;  
    qDebug() << value;  
}

5. 使用 QListIterator 或 QMutableListIterator

Qt 还提供了 QListIterator 和 QMutableListIterator,这是两种 Java 风格的迭代器,分别用于只读访问和修改访问。

  • 使用 QListIterator 进行只读访问:
QVector<int> vector = {1, 2, 3, 4, 5};  
QListIterator<int> it(vector);  
while (it.hasNext()) {  
    qDebug() << it.next();  
}
  • 使用 QMutableListIterator 进行修改访问:
QVector<int> vector = {1, 2, 3, 4, 5};  
QMutableListIterator<int> it(vector);  
while (it.hasNext()) {  
    int &value = it.next();  
    value *= 2;  
    qDebug() << value;  
}

根据你的具体需求选择最适合的遍历方式。在大多数情况下,范围基 for 循环提供了足够的简洁性和功能性,但在某些特殊场景下,其他方法可能更合适。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值