Qt C++ 循环遍历防止重复
时间: 2023-08-03 11:14:43 浏览: 166
基于Qt的重复文件检测工具
在Qt C++中,循环遍历防止重复的方法和普通的C++方法类似,可以使用标记数组或者哈希表。以下是两种方法的具体实现:
1. 标记数组
使用QVector<bool>类型的数组,数组的下标表示元素的值,数组的值表示该元素是否出现过。
```
const int MAX_VALUE = 100;
QVector<bool> visited(MAX_VALUE, false);
for (int i = 0; i < n; ++i) {
if (!visited[arr[i]]) {
// 处理arr[i]
visited[arr[i]] = true;
}
}
```
2. 哈希表
使用QSet容器,将每个元素插入容器中,如果元素已经存在,就不再处理。
```
QSet<int> hash_set;
for (int i = 0; i < n; ++i) {
if (!hash_set.contains(arr[i])) {
// 处理arr[i]
hash_set.insert(arr[i]);
}
}
```
以上两种方法都可以有效地解决重复项的问题,但哈希表的效率更高,因为它使用了哈希函数,查找元素的时间复杂度为O(1)。
阅读全文