c++

c++遍历如何避免重复

小樊
86
2024-07-30 13:25:10
栏目: 编程语言

在C++中,遍历时避免重复的方法取决于遍历的数据结构和具体的需求。以下是一些常见的方法:

  1. 使用集合(Set):将需要遍历的元素放入集合中,集合会自动去重,确保每个元素只出现一次。
#include <iostream>
#include <set>

int main() {
    std::set<int> s = {1, 2, 3, 1, 2, 3}; // {1, 2, 3}
    
    for (int num : s) {
        std::cout << num << " ";
    }
    
    return 0;
}
  1. 使用标记数组:对于数组或容器中的元素,可以使用一个标记数组来标记已经访问过的元素,确保每个元素只被访问一次。
#include <iostream>
#include <vector>

int main() {
    std::vector<int> nums = {1, 2, 3, 1, 2, 3};
    std::vector<bool> visited(nums.size(), false);
    
    for (int i = 0; i < nums.size(); i++) {
        if (!visited[i]) {
            std::cout << nums[i] << " ";
            visited[i] = true;
        }
    }
    
    return 0;
}
  1. 使用额外的数据结构:根据具体情况,可以使用其他数据结构如哈希表或图来存储已经访问过的元素,以避免重复访问。

无论使用哪种方法,都需要根据具体情况选择最合适的方式来避免重复遍历。

0
看了该问题的人还看了