温馨提示×

c++ set遍历 怎么处理空值

c++
小樊
83
2024-11-26 02:58:03
栏目: 编程语言

在C++中,std::set是一个关联容器,它包含一组唯一的元素。默认情况下,std::set中的元素是自动排序的,而且不允许有重复的元素。

如果你想在遍历std::set时处理空值,你需要使用一个可以存储空值的容器,例如std::set<std::optional<T>>,其中T是你想在std::set中存储的值类型。std::optional是一个可以表示“值存在”或“值不存在”的类型。

下面是一个使用std::set<std::optional<int>>的示例:

#include <iostream>
#include <set>
#include <optional>

int main() {
    std::set<std::optional<int>> my_set = {1, 2, std::nullopt, 4};

    for (const auto& element : my_set) {
        if (element.has_value()) {
            std::cout << "Value: " << element.value() << std::endl;
        } else {
            std::cout << "Empty value" << std::endl;
        }
    }

    return 0;
}

在这个示例中,我们创建了一个名为my_setstd::set,其中包含一些整数值和一个空值。然后,我们使用范围for循环遍历my_set,并使用has_value()方法检查每个元素是否有值。如果有值,我们打印该值;否则,我们打印“Empty value”。

0