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 :

Vector, est ce que cela vaut la peine


Sujet :

SL & STL C++

  1. #1
    Membre habitué

    Profil pro
    Inscrit en
    Avril 2004
    Messages
    421
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2004
    Messages : 421
    Points : 189
    Points
    189
    Par défaut Vector, est ce que cela vaut la peine
    bonjour, voila dans le cadre d'un petit projet, je dois faire un peitit jeu et donc je faire le background qui comprend plusieurs layer . enfin bref.

    j'ai besoin d'un vecteur a trois dimension style
    V[layer][x][y];

    la question est , ceci

    std::vector<std::vector<std::vector<int> > > m_LayerBoard;

    est il bon??? ou bien utiliser vector pour ca est un peut de trop et vaut mieux un bon vieux int***. en fait, le truc, c'est qu'on en a besoin de 30 fois par seconde. donc, n'y a il pas trop de calcul avec le triple vector???

    merci

    a++

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 94
    Points : 82
    Points
    82
    Par défaut
    Je n'ai pas vraiment d'idée précise sur la question. Une seule solution -> essaye et fait un benchmark !

  3. #3
    jmv
    jmv est déconnecté
    Membre confirmé Avatar de jmv
    Profil pro
    Enseignant
    Inscrit en
    Mai 2004
    Messages
    395
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Mai 2004
    Messages : 395
    Points : 603
    Points
    603
    Par défaut
    j'ai fait, il n'y a pas longtemps, une comparaison entre un tableau et un vector (à 1 dimensions) et je n'ai vu aucune différence de performance à environ 30000 accés par seconde.

  4. #4
    Membre averti Avatar de xxiemeciel
    Inscrit en
    Juin 2005
    Messages
    371
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 371
    Points : 352
    Points
    352
    Par défaut
    Salut,

    a priori tu n'auras pas beaucoup de difference de performances entre un vector et un tableau.

    Mais je pense plutot que de faire un vector de vector de vector tu pourrais faire un vector a une dimension et calculer un offset a partir des position x,y,z

    pour un tableau a 3 dimensions de taille xSize,ySize,zSize

    l'acces a tab[x][y][z] devient tab[offset]

    avec offset = z + (x*ySize + y)*zSize (il y a plusieurs possibilité pour l'offset a 3 dimension a toi de choisir celui que tu preferes)

    et ca evite de travailler avec des triples pointeur ou des vector en cascade.

    XXiemeciel

  5. #5
    Membre habitué

    Profil pro
    Inscrit en
    Avril 2004
    Messages
    421
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2004
    Messages : 421
    Points : 189
    Points
    189
    Par défaut
    merci

  6. #6
    Membre éclairé Avatar de reggae
    Profil pro
    Inscrit en
    Août 2005
    Messages
    773
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2005
    Messages : 773
    Points : 795
    Points
    795
    Par défaut
    Tout ce que tu risques de perdre en performance avec les vecteurs, tu les gagneras en simplicité...(pour moi) les vecteurs sont des conteneurs très efficaces que je manie avec plus d'aisance que les tableaux

  7. #7
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut Re: Vector, est ce que cela vaut la peine
    Citation Envoyé par elekis
    la question est , ceci

    std::vector<std::vector<std::vector<int> > > m_LayerBoard;

    est il bon??? ou bien utiliser vector pour ca est un peut de trop et vaut mieux un bon vieux int***. en fait, le truc, c'est qu'on en a besoin de 30 fois par seconde. donc, n'y a il pas trop de calcul avec le triple vector???
    Quand on a ce genre de question, la bonne réponse est qu'il faut se faire une classe qui encapsule la décision. Comme ça, si le choix initial est mauvais, on peut changer facilement puisqu'il n'y a que l'implémentation de la classe qui en dépend.

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

Discussions similaires

  1. [ECOLE] L'ETNA, est ce que ca vaut quelque chose ?
    Par Phenomenium dans le forum Etudes
    Réponses: 52
    Dernier message: 20/05/2016, 18h59
  2. Que pensez-vous de underscore.js ? Cela vaut la peine de s'y mettre ?
    Par beegees dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 15/02/2015, 11h39
  3. Réponses: 3
    Dernier message: 28/10/2014, 12h18
  4. Réponses: 17
    Dernier message: 13/06/2005, 21h41
  5. Réponses: 1
    Dernier message: 05/05/2003, 11h13

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