我正在尝试理解 C++ 代码。 (我是一个完全的初学者并且习惯了Java) 我真的很难理解这里发生了什么。
所以我得到了这个
Eigen::Vector2i mapDims;
Eigen::Vector2f mapLimits;
float cellLength;
和我的类的构造函数,如下所示:
MapDimensionProperties(const Eigen::Vector2f& OffsetIn, const Eigen::Vector2i& mapDimsIn, float cellLengthIn)
: tOffset(OffsetIn)
, mapDims(mapDimsIn)
, cellLength(cellLengthIn)
{
// I don't understand the following part:
mapLimits = (mapDimensionsIn.cast<float>()).array() - 1.0f;
}
这里发生了什么?我看到这个 Integer Vector 被转换为 Float Vector,然后似乎变成了一个数组。但是如何从数组中减去 float 呢?我的意思是,您不必指出要在哪个地方减去某些内容的特定索引吗? 如果它是一个数组并且 mapLimits 是一个 vector ,它如何覆盖 mapLimits?
还是我在这里完全错了?
提前致谢。
最佳答案
这是一个重载的运算符-
,它从数组的所有项中减去标量值。
我相信这篇文档描述了它:link .
关于c++ - 在 C++ 中对数组使用运算符减号 (-),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44873391/