2017-07-02 2 views
0

J'essaie de comprendre un code C++. (Je suis un débutant total et utilisé pour Java) Et je me bats vraiment pour comprendre ce qui se passe ici.Utilisation de l'opérateur moins (-) sur un tableau en C++

alors je suis ce

 Eigen::Vector2i mapDims; 
     Eigen::Vector2f mapLimits; 
     float cellLength; 

et un constructeur pour ma classe qui ressemble à ceci:

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

Qu'est-ce qui se passe ici? Je vois que ce vecteur entier est moulé en un vecteur flottant, et apparemment transformé ensuite en un tableau. Mais comment pouvez-vous soustraire un nombre flottant d'un tableau? Je veux dire que vous ne deviez pas indiquer un index spécifique sur quel endroit vous voulez soustraire quelque chose? Et comment peut-il remplacer mapLimits, si c'est un Array et mapLimits est un vecteur?

Ou est-ce que je me trompe complètement ici?

Merci à l'avance.

+2

Vous devriez regarder dans la surcharge de l'opérateur, et un [bon livre C++] (https://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list) –

+0

@PasserBy ... Eh bien, je sais que c'est probablement une question stupide, mais j'ai essayé de la rechercher et il semble que je ne sais même pas comment correctement exprimer ce que je ne sais pas ... – kalu

+0

@PasserBy EDIT: savez-vous où Je peux regarder comment l'opérateur est surchargé pour l'Eigen :: Vector2f – kalu

Répondre

2

Il s'agit d'un operator - surchargé qui soustrait la valeur scalaire de tous les éléments du tableau. Je crois que cette pièce de documentation le décrit: link.