介绍
本文主要讨论C++中常见的几种循环遍历操作的语法:基于迭代器、基于Qt库中的foreach关键字、基于C++11新增的for循环语句。
基于迭代器的遍历
在C++容器中经常需要进行遍历操作,在C++11之前一般使用下面这种方式——基于迭代器的遍历:
QList<QString> list {"a", "b", "c", "d"};
QList<QString>::const_iterator citer = list.cbegin();
for (; citer != list.cend(); ++citer)
qDebug() << (*citer);
获取容器的开始迭代器,然后输入当前迭代器指向的值,将迭代器指向下一个位置,依次下去直到迭代器到达容器尾端迭代器终止遍历操作。这种方式提供了可变迭代器和常量迭代器,前者可以在移动遍历过程中修改容器内容,后者则是只读式的遍历。迭代器作为一种接口,可以很方便的提供给C++中其他标准库调用,如排序、插入、删除、输入输出等。
但作为一般的遍历操作,其存在一些不足,首先就是代码冗长,其次就是:我只是想遍历容器每个元素,至于容器内元素的位置我并不关心,可是上面操作你必须小心的为迭代器赋值和移动,一旦失误导致迭代器超出容器的迭代器范围会导致未知错误。

本文介绍了C++中三种常见的遍历方式:基于迭代器、Qt的foreach关键字和C++11的范围for循环。foreach在Qt中提供了简洁的遍历体验,但不支持修改原始容器,而C++11的范围for循环则兼顾了简洁和可修改性。
最低0.47元/天 解锁文章
1429

被折叠的 条评论
为什么被折叠?



