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 :

meilleure facon de stocker des pointeurs vers un tableau


Sujet :

C++

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2009
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2009
    Messages : 42
    Points : 23
    Points
    23
    Par défaut meilleure facon de stocker des pointeurs vers un tableau
    bonjour,

    En gros je voudrais savoir quelle est la manière la plus économique au niveau de la mémoire vive de stocker un nombre variable d'integer/float qui me servent de pointeurs dans un tableau

    par exemple :

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    struct float3
    {
      float x;
      float y;
      float z;
     
    /*
      plusieurs fonctions ....
    */
    }
     
    float3* tableau  = new float3[10];
     
    	tableau [0] = float3(0.0f, 0.0f,0.0f);
    	tableau [1] = float3(0.0f, 1.0f,0.0f);
    	tableau [2] = float3(1.0f, 1.0f,0.0f);
    	tableau [3] = float3(1.0f, 0.0f,0.0f);
    .
    .
    .
     
    struct vertex
    {
      float* pointeursTableau;
    .
    .
    .
    }
    void function1(....)
    {
    vertex* ver = new vertex();
    ver-> pointeursTableau =  ????? // comment je fais pour dire que je veux par exemple 10% de 1, 30% de 3 et  15% de 7; 
     
    }
    il me faut absolument la manière la moin couteuse en mémoire c'est important car je vais avoir des million de fois la structure vertex !

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2009
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2009
    Messages : 42
    Points : 23
    Points
    23
    Par défaut
    La meilleure solution que j'ai trouvé est de faire ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ver-> pointeursTableau =  { 1.1f, 3.3f, 7.15f }; // 10% de 1, 30% de 3 et  15% de 7;
    mais y a-t-il un moyen d'encore plus compacter le stockage et est ce vraiment économique ?

  3. #3
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    Vous cherchez à faire des trucs compliqués. Avez vous une bonne raison de vouloir gagner autant de place ?
    Sinon, une structure du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    struct 
    {
    unsigned short number;
    unsigned char percent;
    }
    Avec le packing qu'il faut, ça pourrait prendre encore moins de place. Par contre, les nombres sont plus limités encore.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  4. #4
    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
    Points : 13 017
    Points
    13 017
    Par défaut
    Salut,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    struct float3
    {
      float x;
      float y;
      float z;
     
    /*
      plusieurs fonctions ....
    */
    };
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    struct vertex
    {
      std::vector<float3> sommets;
    .
    .
    .

    Quand à :
    Citation Envoyé par kev753 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ver-> pointeursTableau =  { 1.1f, 3.3f, 7.15f }; // 10% de 1, 30% de 3 et  15% de 7;
    ça ne veut rien dire et ça ne compile pas.

  5. #5
    Membre expert
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 415
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 415
    Points : 3 156
    Points
    3 156
    Par défaut
    Citation Envoyé par kev753 Voir le message
    il me faut absolument la manière la moin couteuse en mémoire c'est important car je vais avoir des million de fois la structure vertex !
    Ce qu'il te faut surtout, c'est de la performance car de la mémoire tu en boufferas beaucoup de toute manière.

    Par exemple, si tu connais à l'avance le nombre de vertex, tu peux créer un vector qui a la bonne taille direct plutôt que de faire des petits news isolés.

    De plus, tu n'as pas forcément intérêt à utiliser un tableau de pointeurs : tu ne gagneras pas de temps ni d'espace mémoire en faisant ainsi, sauf si tu dois en permanence trier tes vertex ce dont je me permet de douter.
    Find me on github

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2009
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2009
    Messages : 42
    Points : 23
    Points
    23
    Par défaut
    bah en fait, si je suis parti vers un tableau qui est pointé c'est parce que ce tableau contiendra au maximum une vingtaine d'éléments qui varieront très souvent alors que les vertex auront toujours besoin de la valeur du (ou des) memes éléments

Discussions similaires

  1. [MySQL] Meilleure facon d'insérer des données dont certaines peuvent être en double ?
    Par beninsky dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 15/05/2010, 09h17
  2. [MySQL] Meilleure facon de récupérer des resultats sur une période
    Par beninsky dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 29/03/2010, 15h01
  3. meilleure facon de gerer des interruptions ?
    Par kamouminator dans le forum Linux
    Réponses: 0
    Dernier message: 20/04/2009, 11h39
  4. le meilleur moyen de stocker des données de type TIME?
    Par EvilGost dans le forum Développement
    Réponses: 3
    Dernier message: 10/10/2008, 16h13
  5. Meilleur méthode pour stocker des images ?
    Par sofien dans le forum SQL Procédural
    Réponses: 6
    Dernier message: 09/05/2008, 12h04

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