Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/163.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在C++; 我试图理解C++代码。(我完全是个初学者,习惯了Java) 我真的很难理解这里发生了什么_C++_Arrays_Vector_Eigen - Fatal编程技术网

在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个小时里,我一直在工作和学习,这是一个明确的证据,你现在可以把我的大脑扔进垃圾桶了。谢谢你的努力,这回答了我的问题