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

SL & STL C++ Discussion :

Tableau et nombre aleatoire


Sujet :

SL & STL C++

  1. #1
    Membre averti
    Inscrit en
    Octobre 2009
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 48
    Par défaut Tableau et nombre aleatoire
    Bonjour je suis débutant en STL (aussi en c++ ) et je evux creer un tableau qui aurait par exemple 10 entier aléatoire afin de le trier!

    Je sais que pour trier le tableau je n'aurait qu'à utiliser la fonction sort, le problème est de créer ce tableau.

    Pour initialiser un tableau vide je sais que c'est

    Pour l'afficher ça sera par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    for (size_t i = 0; i < tableau.size(); i++)
       printf("%d\n", tableau[i]);
    Comment le remplir aléatoirement?

  2. #2
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Bonjour,
    Commençons par rectifier l'affichage : ce sera plutôt avec l'utilisation des flux en C++ :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for (size_t i = 0; i < tableau.size(); i++)
       std::cout<<tableau[i]<<"\n";
    Et en allant plus loin avec la STL, tu peux même simplifier avec les itérateurs :
    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
    16
    17
    18
    // std::cout
    #include <iostream>
    // std::ostream_iterator
    #include <iterator>
    // std::copy
    #include <algorithm>
    //std::vector
    #include <vector>
    int main()
    {
       std::vector<int> tableau;
       std::copy(
          tableau.begin(),
          tableau.end(),std::ostream_iterator<int>(std::cout,"\n")
       );
     
       return 0;
    }
    Pour l'initialiser, tu as plusieurs solutions
    -> rajouter d'office 10 nombres :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tableau.resize(10); // tableau a dix éléments, chacun a la valeur 0
    -> utiliser push_back pour ajouter chacun des éléments :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for(int i=0;i<10;++i){
       tableau.push_back(i);
    }
    -> utiliser un générateur et l'algorithme std;::generate :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    struct mon_generateur {
      int operator()() {return 0;}
    };
     
    int main()
    {
       std::vector<int> tableau;
       tableau.resize(10);
       std::generate(tableau.begin(),tableau.end(),mon_generateur());
    }
    -> Utiliser std::generate_n avec un insert_iterator :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    struct mon_generateur {
      int operator()() {return 0;}
    };
     
    int main()
    {
       std::vector<int> tableau;
       std::generate_n( std::back_inserter(tableau.end()), 10 ,mon_generateur());
    }
    Pour générer un nombre aléatoire, il suffit de remplacer dans int operator()() du générateur, la valeur 0 par la fonction C de génération aléatoire . Ou si tu es plus sport, de regarder Boost.Random

  3. #3
    Membre averti
    Inscrit en
    Octobre 2009
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 48
    Par défaut
    Je te remercie beaucoup pour ces explications très détaillés!

    En tout cas merci!

  4. #4
    Membre averti
    Inscrit en
    Octobre 2009
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 48
    Par défaut
    Mais j'ai pas réussi a remplir ce tableau et encore moins a le remplir automatiquement grâce a la fonction rand()

  5. #5
    Membre très actif
    Profil pro
    professeur des universités à la retraite
    Inscrit en
    Août 2008
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : professeur des universités à la retraite

    Informations forums :
    Inscription : Août 2008
    Messages : 364
    Par défaut
    Il faudrait que tu donnes le code qui n'a pas marché pour que quelqu'un puisse t'aider.

Discussions similaires

  1. generation de nombre aleatoire à mettre dans un tableau
    Par lecaire dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 11/05/2009, 18h10
  2. tableau de nombres aleatoires de lehmer
    Par betreen34 dans le forum C
    Réponses: 3
    Dernier message: 13/11/2007, 14h18
  3. [langage] générer un nombre aléatoire gaussien
    Par kayari dans le forum Langage
    Réponses: 5
    Dernier message: 23/05/2005, 08h12
  4. nombres aleatoires en plsql
    Par al85 dans le forum PostgreSQL
    Réponses: 6
    Dernier message: 29/03/2005, 19h07
  5. nombre aleatoire
    Par Bob dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 17/06/2002, 18h12

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