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 :

Une classe vector sans STD?


Sujet :

C++

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 112
    Points : 76
    Points
    76
    Par défaut Une classe vector sans STD?
    Bonjour,
    je suis en train de développer un jeu vidéo qui sera surement développé par la suite sur PS2, cette console ayant apparement de gros problèmes de gestion de memoire, l'utilisation de la STL est proscris.
    J'aimerais tout de même utilisé le principe des vecteur pour gérer une collection d'objet, est-ce que quelqu'un sait si une classe vecteur n'utilisant pas std existe? Si oui, où pourrai-je la trouver?

    S'il n'y en a pas je pense en coder une moi-même.

    Merci de votre future aide.

    Cordialement,

    dede

  2. #2
    Membre éclairé Avatar de MatRem
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 750
    Points : 693
    Points
    693
    Par défaut
    Cette console ayant apparement de gros problèmes de gestion de memoire
    Qu'est ce que tu veux dire par là... ça me semble bizarre.

    En plus si il ne faut pas utiliser le vector de la STL alors pourquoi ça serait mieux avec un autre vector qui utilise le même principe?

    Autrement le principe des vectors n'est pas compliqué puisque il sont gérés comme des tableaux. Il y a juste de la réallocation de mémoire à faire quand le tableau est trop petit.

  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 : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Tu peux aussi utiliser std::vector avec un allocator perso, si ce n'est que la gestion de la mémoire qui pose problème.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 112
    Points : 76
    Points
    76
    Par défaut
    Qu'est ce que tu veux dire par là... ça me semble bizarre.

    En plus si il ne faut pas utiliser le vector de la STL alors pourquoi ça serait mieux avec un autre vector qui utilise le même principe?

    Autrement le principe des vectors n'est pas compliqué puisque il sont gérés comme des tableaux. Il y a juste de la réallocation de mémoire à faire quand le tableau est trop petit.
    Bah, je programme pas sous PS2 mais apparement c'est une console très pointilleuse au niveau de la gestion de la mémoire et à ce que mon maitre de stage a dis (celui qui va developper la partie PS du jeu), STL ne gère pas forcément la mémoire de manière optimisé et la PS2 rame beaucoup si elle doit faire des "saut" de memoire souvent.
    Donc je pensais utliser le principe du vecteur mais de manière simplifier (moins de fonction que dans stl) et avec un controle totale sur ce qu'il se passe en mémoire.
    Maintenant je suis pas un pro du C++ alors c'est peut-être n'importe quoi comme idée.

    Tu peux aussi utiliser std::vector avec un allocator perso, si ce n'est que la gestion de la mémoire qui pose problème.
    Hum, intéressant... le problème c'est que je vois pas du tout comment faire, une piste?

    Merci,

    dede

  5. #5
    Membre éclairé Avatar de MatRem
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 750
    Points : 693
    Points
    693
    Par défaut
    Voilà comment fonctionne les allocators:
    http://www.sgi.com/tech/stl/Allocators.html

    Ensuite il suffit de passer ton allocator perso au moment de l'instanciation du vector.

  6. #6
    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 : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Je pense que la première chose à faire avant de se lancer dans ce genre de code, est d'aller se renseigner sur des forums spécialisés pour le dév PS2 et voir si réellement l'utilisation de l'allocator par défaut te donnera des performances pourries.

    Par curiosité (ça m'intéresse aussi), selon ton maître de stage, qu'est-ce qui dans std::vector est incompatible avec la PS2 ?

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 112
    Points : 76
    Points
    76
    Par défaut
    Oki merci MatRem, je vais y jetter un coup d'oeuil.

    Sinon, laurent je crois que tu as raison je vais me renseigner sur des forums spécialisés, mais pour l'instant je code le moteur du jeu et je verrais plus tard. L'optimisation se fait a la fin du code dis mon maitre de stage et il a plutot raison . Je lui demanderai plus précisément ce qui ne va pas avec la std et la PS2 et je posterai la réponse sur le forum.

    A+

    dede

  8. #8
    mat.M
    Invité(e)
    Par défaut
    Citation Envoyé par dedesite
    Bonjour,
    J'aimerais tout de même utilisé le principe des vecteur pour gérer une collection d'objet, est-ce que quelqu'un sait si une classe vecteur n'utilisant pas std existe? Si oui, où pourrai-je la trouver?

    S'il n'y en a pas je pense en coder une moi-même.
    C'est le BA à BA du C++:
    Il suffit de déclarer une classe perso de gestion de liste qui reçoit une classe quelconque ( template ).
    Cette classe pointe sur une autre.
    A toi de définir les opérateurs [] par exemple si tu veux faire un tableau dynamique

Discussions similaires

  1. Exercice : création d'une classe vector std-like
    Par Goten dans le forum Débuter
    Réponses: 17
    Dernier message: 08/12/2008, 17h54
  2. Réponses: 6
    Dernier message: 02/05/2007, 13h15
  3. rendre une classe serializable sans les codes sources
    Par LittleBean dans le forum Langage
    Réponses: 2
    Dernier message: 19/04/2007, 10h47
  4. Supprimer une classe Fille sans toucher a la Mere
    Par 17mounir dans le forum Hibernate
    Réponses: 2
    Dernier message: 08/01/2007, 12h27
  5. Réponses: 7
    Dernier message: 01/09/2006, 14h19

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