c++ - 在 C++ 中对数组使用运算符减号 (-)

标签 c++ arrays vector eigen

我正在尝试理解 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/

相关文章:

c++ - 我可以让 VC++ Intellisense 忽略一些它认为无效的东西吗?

c - 数组和基址重定向

arrays - 在 TableView 中过滤二维数组以在 Swift 中进行搜索

vector - 如何添加两个不同大小的向量 VHDL

c++ - 模板 shared_ptr 参数

c++ - 简单的小型 C++ IDE

c++ - 输入和输出迭代器

C - 如何将 [600][400] 数组复制到 [4][4] 数组,然后随机化元素位置?

c++ - std::vector 的数组不起作用

c++ - 使用两个参数初始化 STL vector