IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Probleme pour concatener 2 objets Set


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 34
    Par défaut Probleme pour concatener 2 objets Set
    bonjour,

    j'ai un petit probleme pour effectuer une concatenation de 2 objets set de la STL.

    En fait je copie un 1er objet set dans un nouvel objet set, puis je souhaite inserer les valeurs d'un 2eme objet a la suite de mon nouvel objet set :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    objetSet objSet;
    	objSet= objSet1;
    	objSet.insert(objSet2.begin(),objSet2.end());
    j'ai essayé ca, mais ca fonctionne de maniere aléatoire, l'insert plante régulièrement, je ne sais pas pourquoi, peut-être existe-t-il une methode plus adequate pour faire ca.

    si quelqu'un a une idée ?

    Merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    t'as essayé ca ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    std::copy(set1.begin(), set1.end(), std::back_inserter(set2.end()));
    pour copier set1 a la fin de set2...

  3. #3
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    std::back_inserter va faire des push_back, ça ne marchera pas sur un set. Il faut un std::inserter je crois.

    Mais bon le code original semble correct. S'il est mis à part dans un code minimal il plante toujours ?

    Et... tu insères combien d'objets en tout ?

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 34
    Par défaut
    En fait, effectivement, le code original isolé fonctionne.

    Le probleme étant que dans mon appli, je passe par une methode dans laquelle :
    1°) j'effectue le traitement précédent.

    2°) je passe dans une methode qui modifie les objet de mon objSet2

    3°) on repasse dans la methode du 1°) avec l'objSet2 modifié, et donc c'est là que ca plante, j'ai l'impression qu'il y a un probleme sur la perte des id des objets contenus dans objSet2

    en general objSet1 contient 1500 objet et objSet2 en contient 30.

    Je test les différentes proposition

    merci

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 34
    Par défaut
    j'ai essayé la proposition de toxcct, et ca donne le meme comportement.

    ca fonctionne le premier coup et pas le deuxieme, meme exception sur la perte de l'id de l'objet.

    c'est donc de mon traitement suivant que doit venir le probleme

  6. #6
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Par défaut
    C'est quoi les objets de ton set ? Comment est défini l'opérateur < dessus ?
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

Discussions similaires

  1. Probleme pour afficher un objet dans la vue ?
    Par Zoners dans le forum ASP.NET MVC
    Réponses: 4
    Dernier message: 14/03/2012, 10h47
  2. probleme pour générer des objets aleatoirement
    Par tonytrua dans le forum Débuter
    Réponses: 10
    Dernier message: 09/12/2011, 15h09
  3. Réponses: 2
    Dernier message: 23/04/2010, 01h16
  4. Réponses: 2
    Dernier message: 03/06/2009, 11h35
  5. Réponses: 3
    Dernier message: 31/03/2008, 15h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo