c++

c++ set遍历 怎么跳过某些元素

小樊
81
2024-11-26 02:48:07
栏目: 编程语言

在C++中,遍历std::set时跳过某些元素可以通过使用迭代器(iterator)和条件语句来实现。以下是一个示例,展示了如何遍历std::set并跳过值为特定值的元素:

#include <iostream>
#include <set>

int main() {
    std::set<int> my_set = {1, 2, 3, 4, 5, 6, 7, 8, 9};

    // 要跳过的元素值
    int skip_value = 5;

    // 使用迭代器遍历集合
    for (auto it = my_set.begin(); it != my_set.end(); ) {
        // 如果当前元素等于要跳过的值,则跳过该元素
        if (*it == skip_value) {
            it = my_set.erase(it); // 删除当前元素并更新迭代器
        } else {
            ++it; // 如果当前元素不等于要跳过的值,则移动到下一个元素
        }
    }

    // 输出遍历后的集合
    for (const auto& elem : my_set) {
        std::cout << elem << " ";
    }

    return 0;
}

在这个示例中,我们创建了一个包含整数的std::set,然后使用迭代器遍历集合。如果当前元素等于要跳过的值(在这里是5),我们就使用erase方法删除该元素并更新迭代器。否则,我们继续遍历集合。最后,我们输出遍历后的集合。

0
看了该问题的人还看了