如何使用可选元素初始化成对的 C++17 向量

How to initialize C++17 vector of pairs with optional element

在 C++17 中,如何使用可选元素声明和初始化对(或元组)向量?

    std::vector<std::pair<int, optional<bool> > > vec1 = { {1, true},
                                                           {2, false}, 
                                                           {3, nullptr}};

我有一对,其中第二个元素可能是 null/optional。

您正在寻找 std::nullopt 而不是 nullptr

std::vector<std::pair<int, std::optional<bool> > > vec1 =
  { {1, true}, {2,false}, {3,std::nullopt} };

或者简单的使用默认构造:

std::vector<std::pair<int, std::optional<bool>>> vec1 {
    {1, true}, {2,false}, {3,{}}
};