2017-07-02 42 views
0

我想了解一個C++代碼。 (我是一個初學者,習慣了Java) 我真的非常想知道這裏發生了什麼。在C++中使用運算符減號( - )

所以我得到這個

 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; 
     } 

這到底是怎麼回事?我看到這個整型向量被轉換爲一個浮點向量,並且看起來後來變成了一個數組。但是,如何從數組中減去浮點數?我的意思是你不需要指出哪個地方你想要減去某些東西的具體指標? 它如何重寫mapLimits,如果它的Array和mapLimits是一個向量?

還是我完全錯了?

預先感謝您。

+2

你應該看看操作符重載,和一個[良好的C++書](https://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list) –

+0

@PasserBy ...以及我知道這可能是一個愚蠢的問題,但我試圖研究它,似乎我甚至不知道如何恰當地說出我不知道的... – kalu

+0

@PasserBy編輯:你知道在哪裏我可以查看運營商是如何運行Eigen :: Vector2f – kalu

回答

2

這是一個過載的operator -,它將所有數組項的標量值相減。 我相信這篇文檔描述了它:link