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 :

meilleur moyen pour parcourir un tableau


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Inscrit en
    Novembre 2006
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 073
    Par défaut meilleur moyen pour parcourir un tableau
    Je voudrais remplir/parcourir/repérer et selection des valeurs un tableau, d'une taille 20000*100 (au maximum),
    Je sais que le meilleur moyen est d'utiliser un vector.
    Mais quel est le moyen le plus rapide pour passer d'un élément a un autre?
    Faut il utiliser les pointeurs... ?
    Merci

  2. #2
    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
    Un pointeur, ou un itérateur (qui est assimilable à un pointeur).

  3. #3
    Membre éprouvé
    Inscrit en
    Novembre 2006
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 073
    Par défaut
    Ok, c'est ce que je pensais.

    Quand je fais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    int main(){
     
         vector<double > tableaux;
        tableaux[3]=3;
    }
    Ca plante. J'imagine que c'est parce que; j'ai pas spécifié la taille du tableaux,
    j'ai pas rentré 3avec un itérateur.

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    780
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 780
    Par défaut
    Ca plante. J'imagine que c'est parce que; j'ai pas spécifié la taille du tableaux
    tu n'as pas besoin avec un vector.

    Pour ajouter une donnée:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    tableau.push_back( 3 );
    j'ai pas rentré 3avec un itérateur.
    l'itérateur sert à parcourir ton tableau, pas à le remplir.

    Je te conseille de chercher de la documentation sur ce que tu utilises, essayer au hasard n'est pas vraiment la bonne méthode

  5. #5
    Membre éprouvé
    Inscrit en
    Novembre 2006
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 073
    Par défaut
    ok
    merci, c'est ce que j'ai fait:
    voici le code:
    Merci de le corriger, afin de l'optimiser,(meme si je pense pas qu'il y ait vraiment besoin de l'optimiser vu la taille)
    Est-ce la manière la plus rapide de remplir?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    using namespace std;
    int main(){
         double i,j;
          vector<double > lignes ;
     
          vector<vector<double> > tableaux ;
     
     for (j=0;j<=100;j++){
      for(i=0;i<=10000;i++){
        lignes.push_back(i);
      }
       tableaux.push_back(lignes);
     }
    }

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 577
    Par défaut
    ben teste le comme ça, et compare en faisant un remplissage par accés direct avec [].

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 98
    Par défaut
    Salut, C'est une méthode correcte que tu utilise !

    Maintenant si ton objectif est une optimisation à tout prix comme je voix que tu connais tes valeur max pour i et j tu pourrais vraiment te passer des vecteurs ou si tu aime ça quand même tu pourrais déclarer leur taille à la déclaration car push_back n'est pas forcément la plus rapide des méthodes de cette classe.

    Et ensuite pour le remplir ben par exemple en le parcourant avec iterateurs !!!

    Voila bon courage ++
    Seb

  8. #8
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Par défaut
    Réserve la mémoire quand même avant peut-être.
    Ou alors détermine directement la taille, mais ça initialisera tout à 0.

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

Discussions similaires

  1. Meilleur moyen pour savoir s'il éxiste une relation
    Par Cydonia dans le forum VBA Access
    Réponses: 4
    Dernier message: 03/07/2008, 09h34
  2. probléme pour parcourir un tableau dans une JSP
    Par nightcyborg dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 02/12/2007, 17h28
  3. Réponses: 15
    Dernier message: 02/10/2007, 08h25
  4. Réponses: 2
    Dernier message: 17/10/2006, 11h25
  5. Meilleure Méthode pour parcourir un tableau
    Par KPitN dans le forum MFC
    Réponses: 7
    Dernier message: 24/02/2005, 16h19

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