c++ - 如何使用 optional 元素初始化 C++17 对 vector

标签 c++ vector c++17 optional std-pair

在 C++17 中,如何使用 optional 元素声明和初始化成对(或元组) vector ?

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

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

最佳答案

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

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

关于c++ - 如何使用 optional 元素初始化 C++17 对 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60631023/

相关文章:

c++ - 如何避免构造新字符串?

c++ - std::function 参数接收任意数量的参数

haskell - FFI 中的可变数据和惰性

c++ - std::invoke - 完美转发仿函数

c++ - while 和 for 循环的嵌套默认值

c++ - 从字符串访问字段?

c++ - 查找元组元素的最大值 C++

math - 如何选择指向任何凸多边形内部的法向量(2d)?

c++ - Eigen::Map 未命名?

c++ - 在 C++17 中将 lambda 作为方法参数传递的最简单方法