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 :

Allocation mémoire et tableau


Sujet :

C++

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2004
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 37
    Points : 20
    Points
    20
    Par défaut Allocation mémoire et tableau
    dans un souci d'optimisation d'une classe Tableau, je voudrais savoir si il est possible d'allouer la place mémoire précedente du tableau (si celle si n'est pas allouée.)

    je m'explique j'ai une fonction de push_front qui insere une valeur au début du tableau et je voudrais eviter de recopier le tableau en entier (pour déplacer) ou d'utiliser une liste chainée.

    si vous avez une idée je suis preneur aussi
    merci d'avance

  2. #2
    tut
    tut est déconnecté
    Membre averti
    Avatar de tut
    Inscrit en
    Juillet 2002
    Messages
    373
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 373
    Points : 394
    Points
    394
    Par défaut
    Ce que tu cherches à faire éxiste déja dans la STL, regarde un peu du côté de std::vector<> par exemple.

  3. #3
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Ben non, justement, il utilise vector, mais il aimerait avoir un push_FRONT pas back !
    Regarde du côté des deque, ce sont presque des vecteurs, mais pas exactement.

  4. #4
    Membre à l'essai
    Inscrit en
    Avril 2004
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 37
    Points : 20
    Points
    20
    Par défaut
    concernant l'allocation mémoire choisie par le programmeur (une case avant le pointeur du tableau) une piste ?

    je vais m'attarder un peu sur les deque push_front étant en effet présent

  5. #5
    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
    concernat l'allocation mémoire de nous meme un piste ?
    Aucune chance avec un tableau.

    Quelles sont tes contraintes exactement concernant le type de conteneur ?

  6. #6
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Citation Envoyé par Cazman
    concernat l'allocation mémoire de nous meme un piste ?
    En français, ça donne quoi ?

  7. #7
    Membre habitué Avatar de harsh
    Inscrit en
    Février 2005
    Messages
    229
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 229
    Points : 193
    Points
    193
    Par défaut
    Il est logique que tu ne pourras pas addresser sans limite devant et derriere un tabbleau pour garder son indexage.

    Si tu veux bidouiller et que tu connais la taille max des elements qui peuvent se placer devant l'origine initiale de ton tableau, tu peux faire un truc dans le genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    MonObjet *tab  = new MonObjet [n];  // n suffisament grand
    unsigned int nbElt  = 0;
    unsigned int startPtr  = (unsigned int ) n / 2; 
     
    //pour ajouter un element derriere:
    tab[startPtr + nbElt++] = obj1;
     
    //pour ajouter un element devant:
    tab[--startPtr] = obj2;
    ++nbElt;
    ... Mais c'est pas franchement optimisé niveau mémoire uitilisée
    Avant de poser une question, lire la Avant de répondre, lire la question

  8. #8
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Citation Envoyé par Cazman
    concernant l'allocation mémoire choisie par le programmeur (une case avant le pointeur du tableau) une piste ?
    Tu ne peux pas à priori partir là-dessus. Si personne n'a fait de delete ou de free, la mémoire précédente est utilisée. D'ailleurs, la mémoire juste avant est utilsiée en général pour stocker la taille du bloc alloué, donc ça ne marchera jamais.

Discussions similaires

  1. allocation mémoire pour tableau de string
    Par alaninho dans le forum C++
    Réponses: 2
    Dernier message: 09/03/2012, 14h44
  2. Pré-allocation mémoire d'un tableau.
    Par Invité dans le forum Langage
    Réponses: 2
    Dernier message: 06/09/2010, 17h26
  3. Réponses: 2
    Dernier message: 23/08/2007, 12h22
  4. Allocation mémoire : tableau vs malloc
    Par scorbo dans le forum Débuter
    Réponses: 4
    Dernier message: 15/06/2007, 12h47
  5. Limite Allocation Mémoire d'un tableau d'entier
    Par l9ft b9hind dans le forum C++
    Réponses: 5
    Dernier message: 27/10/2005, 19h29

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