给C ++17 vector初始化null可选元素的方法

时间:2022-12-11 17:51:09

C++17给vector使用元组初始化,其中元组里包含了optional元素/null。

方法一:使用 std::nullopt初始化元素

示例:

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,{}}
};

这两种方法中,使用nullopt更清晰点,推荐。