Partage
  • Partager sur Facebook
  • Partager sur Twitter

Récupérer la taille d'un vector

erreur signalée par Xcode

    21 février 2018 à 9:53:59

    bonjour,

    Je suis nouveau sur C++ et suis actuellement le cours d'initiation (j'en suis aux tableaux) et lorsque j'essaie de récupérer la taille d'un tableau de type vector, mon IDE (Xcode) me met le message suivant :

    Implicit conversion loses integer precision: 'size_type' (aka 'unsigned long') to 'const int'

    Dans mon code j'ai écrit :

    int const nombreNotes(notes.size());

    notes étant un tableau à taille variable déclaré antérieurement.

    Dans les faits, lorsque je compile tout se passe normalement, mais quand même, j'aimerais bien comprendre, il ne doit pas dire ça pour rien ;-)

    Quelqu'un a une idée ?

    Par avance merci,

    JPhilippe

    -
    Edité par Jean-philippeTomasini 21 février 2018 à 9:54:59

    • Partager sur Facebook
    • Partager sur Twitter
      21 février 2018 à 10:03:37

      Lu'!

      C'est parce que le type "size_type" présent dans vector est généralement défini comme std::size_t. Ce dernier étant généralement un "uint64_t". A savoir un entier non-signé. Donc là, tu convertis a priori un entier non-signé de 64 bits vers un entier signé de 32 bits, d'où la perte de précision. A noter que le compilateur peut statiquement déterminer ce type pour toi, à l'aide du mot clé auto.

      auto const nombreNotes = notes.size();

      Et nombreNotes se verra attribuer le bon type pendant la compilation.

      EDIT :

      Jean-philippeTomasini a écrit:

      Je suis nouveau sur C++ et suis actuellement le cours d'initiation (j'en suis aux tableaux)

      Si tu parles du "cours" d'OC : Changes de cours. Il apprend un sacré paquet d'âneries à ne pas faire, en plus de montrer des exemples de code buggés et d'être obsolète (quelques recherches sur le forum t'en diront plus). Prends plutôt le cours de C++ de @gbdivers, même s'il est encore en écriture il ne contient pas ce genre de bavures. Si tu as des problèmes de compréhension sur une partie et que ce n'est pas à cause d'un manque d'étude du cours, tu peux poster ici. Si tu préfères un cours déjà complet, tourne toi vers le C++ Primer de Lippman dans sa dernière édition (en anglais), il sera un poil moins à jour mais c'est un bon cours.

      -
      Edité par Ksass`Peuk 21 février 2018 à 10:07:49

      • Partager sur Facebook
      • Partager sur Twitter

      Posez vos questions ou discutez informatique, sur le Discord NaN | Tuto : Preuve de programmes C

        22 février 2018 à 11:38:41

        Ah ? ok, je me renseigne, donc ;-) Merci en tout cas pour l'explication !
        • Partager sur Facebook
        • Partager sur Twitter

        Récupérer la taille d'un vector

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown