Partage
  • Partager sur Facebook
  • Partager sur Twitter

Verifeir si un vector existe

    14 juin 2020 à 11:38:03

    Bonjour

    Tout est dans le titre :je voudrais pouvoir vérifier si  un vector existe (sans causer de crash de l'application ce serait mieux je pense ;))

    Merci d'avance a tout ce qui répondront.

    • Partager sur Facebook
    • Partager sur Twitter
      14 juin 2020 à 11:44:58

      Salut ! Ton compilateur fera très bien le boulot ;) Si tu veux vérifier ça pendant le runtime tu vas devoir changer de stratégie, c'est très loufoque comme idée.

      ======

      L'application ne peut pas crasher si tu essaies de faire une action avec un objet inexistant, comme dit au dessus, c'est lors de la compilation que la vérification syntaxique a lieu. Le runtime ne te décèlera pas une erreur liée à la syntaxe, il pourra éventuellement être stoppé net, par la levé d'une exception ou à la réception d'un signal.

      -
      Edité par Daimyo_ 14 juin 2020 à 11:55:22

      • Partager sur Facebook
      • Partager sur Twitter
        14 juin 2020 à 11:50:25

        Mon programme va buguer si je déclare deux fois le meme vector non?

        • Partager sur Facebook
        • Partager sur Twitter
          14 juin 2020 à 11:59:53

          Euh... Non, il ne buguera (le terme francisé de "bug" c'est "bogue" => "boguera") pas, puisqu'il ne compilera pas. (définition d'un bug). Je te conseille fortement d'expérimenter ! Pour apprivoiser le comportement de ton compilateur.

          Je le redis: Ton runtime ne vérifie pas les erreurs de syntaxe !

          -
          Edité par Daimyo_ 14 juin 2020 à 12:04:34

          • Partager sur Facebook
          • Partager sur Twitter
            14 juin 2020 à 12:04:00

            Ok  je teste et je te dis si ca marche

            edit::

            Je viens de rencontrer un autre probleme: mon vector doit avoir comme nom le contenu d'un string mais si j'essaye:

                      std::vector <std::string> name_Of_List.str(0);
            

            J'ai une erreur :  error:excepted initializer before '.' token

            -
            Edité par ahkeur 14 juin 2020 à 12:12:26

            • Partager sur Facebook
            • Partager sur Twitter
              14 juin 2020 à 12:09:49

              Oups... Désolé d'avoir gâché le plaisir... (J'aurais pu dire "spoilé" mais ça serait con de corriger une faute de français et d'en faire une juste après, pour qui serais-je passé ? :euh:)

              =====

              Oula ! Tu viens de quel langage toi ? C'est pas possible de faire ça. Si tu te documentes tu peux voir qu'une des surcharges du constructeur de std::vector permet d'initialiser un certain nombre d'éléments avec une certaine valeur:

              // value_type est un alias au type contenu.
              explicit std::vector( size_type n, const value_type& val );
              // En grooos...

              Ce constructeur peut-être utilisé ainsi:

              auto my_vec { std::vector<std::string>( 10, "" ) };
              // Initialise un object std::vector qui contient des
              // objets std::string.
              
              // Lors de l'initialisation de l'objet, 10 objets std::string
              // seront poussés dans my_vec.

               PS: Si tu veux que ton code reste visible, tu devrais adopter un style de syntaxe bien défini:

              mon_super_mega_type ma_super_variable { ma_valeur };

              ou alors:

              MonSuperMegaType maSuperVariable { maValeur };

              Perso, moi c'est:

              MonSuperMegaType ma_super_variable { ma_valeur };

              -
              Edité par Daimyo_ 14 juin 2020 à 12:24:48

              • Partager sur Facebook
              • Partager sur Twitter
                14 juin 2020 à 12:24:06

                Et du coup pour mettre le contenu d'un string comme nom de vector je fais comment?

                P.S:En informatique de toute facon tout est anglais donc spoilé ou bug c'est largement accepté;)

                • Partager sur Facebook
                • Partager sur Twitter
                  14 juin 2020 à 12:25:30

                  C'est un autre problème, tu ne peux pas faire ça. Tu peux à la limite utiliser un conteneur associatif, mais passer d'une chaine de caractères à du code en dur c'est pas bien.

                  =====

                  (Mon auto-correction c'était purement de l'humour décalé xD Mais je parle dans une même langue car le jargon de l'informatique c'est le bordel... On se retrouve souvent avec une mauvaise compréhension des faits et le but c'est d'être efficace et objectif)

                  -
                  Edité par Daimyo_ 14 juin 2020 à 12:31:22

                  • Partager sur Facebook
                  • Partager sur Twitter
                    14 juin 2020 à 12:39:09

                    <HS>

                    > le terme francisé de "bug" c'est "bogue" => "boguera"

                    Pitié pas cette horreur qui confond insectes et châtaignes. A ce compte là, c'est une ébogueuse qui retire les bogues, pas un débogueur, soyons au moins cohérents! (je n'arrive pas à retrouver des photos de versions vintages manuelles, il y en avait une à mon grand-père qui traînait dans le jardin chez mes parents, faudra que je la photographie si elle existe toujours)

                    </HS>

                    Sinon, +1 à :
                    - on ne peut pas utiliser une variable non déclarée
                    - on ne peut pas déclarer une variable dont le nom est déjà utilisé pour une autre variable dans la même portée

                    Et surtout, je crois que la grosse confusion c'est que le nom d'une variable ne peut pas être dynamique dans un langage comme le C++ -- et beaucoup d'autres. Le nom d'une variable doit être connu au moment où le programme est écrit par l'humain entre la chaise et le clavier.

                    Si tu ressens le besoin d'avoir des variables dont le nom ne peut être connu qu'au dernier moment, il y a toutes les chances que ce soit d'une table associative, aka dictionnaire, dont tu aies besoin. Typiquement `std::unordered_map<std::string, std::vector<whatever>>`.

                    -
                    Edité par lmghs 14 juin 2020 à 12:40:34

                    • Partager sur Facebook
                    • Partager sur Twitter
                    C++: Blog|FAQ C++ dvpz|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS| Bons livres sur le C++| PS: Je ne réponds pas aux questions techniques par MP.

                    Verifeir si un vector existe

                    × 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