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 :

Ranger un tableau.


Sujet :

C++

  1. #1
    Membre éclairé Avatar de Fred2209
    Inscrit en
    Octobre 2006
    Messages
    310
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 310
    Par défaut Ranger un tableau.
    Voilà,

    J'ai deux tableaux qui correspondent respectivement aux coordonées x et y de points dans un repère : poshor[n] et posvert[n] (n étant le numéro des points), seulement les points ne sont pas ranger dans l'ordre dans les tableaux et je voudrais les ranger dans deux autres tableaux (poshor2[n] et posvert[n] par exemple) mais dans l'ordre..

    Seulement cela implique qu'au moment ou je vais stocker les valeurs dans les nouveaux tableaux, à des moments je devrais sauter des cases et les combler ensuite et là j'ai un problème..

    Merci de m'éclairer..

  2. #2
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Déjà, il faut savoir précisément ce que tu appelles "dans l'ordre"...
    Ensuite, il faut choisir le "sens" du réarrangement: Ordre de lecture des tableaux source ou ordre de remplissage des tableaux destination...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  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
    Le quick sort est implémenté dans le standard, suffit d'utiliser std::sort si tu veux trier tes tableaux.

    Par contre gérer deux tableaux en parallèle c'est pas génial si tu veux garder tes paires, utilise plutôt une structure qui les regroupe.

  4. #4
    Membre éclairé Avatar de Fred2209
    Inscrit en
    Octobre 2006
    Messages
    310
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 310
    Par défaut
    Les deux tableaux sont liés car un point n est représenté par ses coordonnés x et y donc par exemple si pour une valeur de x j'ai plusieurs points donc plusieurs y, alors pour un meme x je devrais les rangé selon les y croissant, ce qu'il y a c'est que le tableau de départ est tellement désorganisé que pour un x je peux sauté de 2 ou 3 valeurs de y alors dans mon nouveau tableau je vais devoir d'abord sauter ces cases et par la suite mettre dedans les valeurs qui conviennent... et la difficulté est là...

  5. #5
    Membre éclairé Avatar de Fred2209
    Inscrit en
    Octobre 2006
    Messages
    310
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 310
    Par défaut
    ok je vais voir ce que je peux faire avec std::sort

  6. #6
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut Et que penser des structures?
    Salut,

    Pourquoi ne pas se baser sur une strucutre pour les coordonnées de ton point?

    En effet, la position X ne peut pas etre utilisée sans la position y pour déterminer ton point...

    Tu crées donc une structure du genre de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    struct Point
    {
        double X;//en adaptant le type en fonction de tes besoins
        double Y;
    };
    et tu utilise un seul tableau (ou un seul vecteur) pour maintenir la liste de tes points...

    std::sort, sauf erreur, va trier ton tableau de X en fonction des valeurs qu'il contient, et meme chose pour le tableau de Y...

    Si le malheur veut (et la loi de murphy nous dit que cela arrivera fatalement) qu'une coordonnée Y d'un point soit plus petite que celle d'un autre alors que la coordonnée X du point est plus grande que celle de l'autre, le tri produira deux points qui n'auront plus rien à voir avec ceux qui ont été introduits à la base...

    Exemple: Si tu as les tableaux de X et de Y suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    X[]={20,15,10};
    Y[]={5,6,4};
    une fois triés, le point 1 sera 10/4, le deux 15/5 et le trois 20/6, alors qu'à la base, ils étaient respectivement 20/5, 15/6 et 10/4...

    Le fait de trier un tableau de structure telle que je te la présente (quitte à prévoir une fonction de comparaison) permettra de garder les valeurs correctes
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [ranger] un tableau de facon differente.
    Par stanilas dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 20/06/2011, 20h16
  2. Lire un fichier et ranger dans tableau
    Par Nemesis007 dans le forum Débuter
    Réponses: 4
    Dernier message: 24/02/2010, 09h56
  3. Réponses: 1
    Dernier message: 15/12/2008, 19h50
  4. Ranger des données dans un tableau
    Par zmatz dans le forum Windows Forms
    Réponses: 7
    Dernier message: 20/06/2007, 18h07
  5. Ranger un tableau de String dans ma HashMap
    Par jeyce dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 26/08/2004, 22h41

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