如何正确初始化 Eigen::Matrix<std::optional<int>>

问题描述 投票:0回答:1

我正在使用

Eigen::Matrix<std::optional<int>>
,但我不知道如何初始化它。

对于数字类型,

Matrix::Zero()
效果很好,但是当我使用
std::optional
时,我想初始化为
std::nullopt
而不是
0

是否可以这样做?如果可以,该怎么做?

c++ eigen3
1个回答
0
投票

不要使用

Matrix::Zero()
,而使用
Matrix::Constant(std::nullopt)

@Nimrod 开始在评论中回复:

Eigen::Matrix<std::optional<int>, 3, 3> matrix;
matrix.setConstant(std::nullopt);

然后,向上查找

setConstant
,我们看到还有一个
Constant
工厂函数:

auto matrix = Eigen::Matrix<std::optional<int>, 3, 3>::Constant(std::nullopt);
© www.soinside.com 2019 - 2024. All rights reserved.