在C++; 我试图理解C++代码。(我完全是个初学者,习惯了Java) 我真的很难理解这里发生了什么
所以我得到了这个在C++; 我试图理解C++代码。(我完全是个初学者,习惯了Java) 我真的很难理解这里发生了什么,c++,arrays,vector,eigen,C++,Arrays,Vector,Eigen,所以我得到了这个 Eigen::Vector2i mapDims; Eigen::Vector2f mapLimits; float cellLength; 我的类的构造函数如下所示: MapDimensionProperties(const Eigen::Vector2f& OffsetIn, const Eigen::Vector2i& mapDimsIn, float cellLengthIn) : tOffset(Offset
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;
}
MapDimensionProperties(常数本征::矢量2F和偏移量,常数本征::矢量2I和mapDimsIn,浮点单元长度)
:tOffset(OffsetIn)
,mapDims(mapDimsIn)
,cellLength(cellLengthIn)
{
//我不理解以下部分:
mapLimits=(mapDimensionsIn.cast()).array()-1.0f;
}
这里发生了什么?我看到这个整数向量被转换成一个浮点向量,然后似乎变成了一个数组。但是如何从数组中减去浮点数呢?我的意思是,你不需要指出一个具体的指数,你想在哪个地方减去一些东西吗?
如果它是一个数组,而mapLimits是一个向量,那么它如何覆盖mapLimits呢
还是我完全错了
先谢谢你 这是一个重载的
运算符-
,它从数组的所有项中减去标量值。
我相信这篇文档描述了它:。这是一个重载的
操作符-
,它从数组的所有项中减去标量值。
我相信这篇文档描述了这一点:。您应该研究操作符重载,以及@PasserBy。。。嗯,我知道这可能是一个愚蠢的问题,但我试着研究它,似乎我甚至不知道如何正确地表达我不知道的东西…@Passerway EDIT:你知道我在哪里可以找到如何为Eigen加载运算符::Vector2f@kalu我不是故意居高临下,但我不熟悉伊根,我在谷歌搜索了15秒后才发现。@cdhowie哦,哇,这太尴尬了。。。在过去的11个小时里,我一直在工作和学习,这是一个明确的证据,你现在可以把我的大脑扔进垃圾桶了。谢谢你的努力,这回答了我的问题。你应该调查一下操作符重载,还有一个@PasserBy。。。嗯,我知道这可能是一个愚蠢的问题,但我试着研究它,似乎我甚至不知道如何正确地表达我不知道的东西…@Passerway EDIT:你知道我在哪里可以找到如何为Eigen加载运算符::Vector2f@kalu我不是故意居高临下,但我不熟悉伊根,我在谷歌搜索了15秒后才发现。@cdhowie哦,哇,这太尴尬了。。。在过去的11个小时里,我一直在工作和学习,这是一个明确的证据,你现在可以把我的大脑扔进垃圾桶了。谢谢你的努力,这回答了我的问题