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 :

Initialiser un container associatif à la compilation


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 31
    Par défaut Initialiser un container associatif à la compilation
    Bonjour,

    J'ai un certain nombre de couples <string, long>. Pour le moment, j'utilise une map qui permet d'obtenir un long en fonction d'une string. Elle est initialisée lors du lancement du programme et qui n'est pas modifé par la suite.
    Je me demande si il est possible de construire et d'initialiser un tel container statique (map ou autre avec des temps d'accès correcte ) lors de la compilation.

  2. #2
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 296
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 296
    Par défaut
    Il y a une sous-bibliothèque de boost qui permet d'initialiser et remplir lors de la construction des containers. Cela reste du code exécuté.

    Si vraiment il y a besoin d'avoir des perfs au point de ne pas avoir de construction "couteuse" et d'avoir une recherche rapide, il est possible de définir un tableau trié (à la main (ou pas) dans l'éditeur) constant de couples {entier,chaine}, et de l'encapsuler avec des accesseurs qui vont bien et qui feront des std::binary_search et autres std::equal_range.

    Bon. C'est si les perfs à cet endroit là sont vraiment critiques et nécessaires.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 31
    Par défaut
    En fait c'est plus un exercice de style qu'un réel besoin. J'en suis arrivé à la même conclusion que toi, à savoir écrire un tableau à la main et implémenter mes propres fonctions de recherche.
    Ce serra un bon exercice le jour ou j'aurrai le temps. En attendant, la map est amplement suffisante.

    Merci de ta réponse.

Discussions similaires

  1. Erreur d'initialisation à la compilation
    Par Brut4lity dans le forum Débuter
    Réponses: 3
    Dernier message: 05/04/2012, 19h34
  2. Réponses: 14
    Dernier message: 16/07/2008, 17h05
  3. Pb de compilation de l'initialisation de Direct3D
    Par TDDev dans le forum Développement 2D, 3D et Jeux
    Réponses: 1
    Dernier message: 09/12/2007, 12h43
  4. Vitesse de compilation
    Par srvremi dans le forum C++Builder
    Réponses: 5
    Dernier message: 30/07/2002, 16h49
  5. Réponses: 1
    Dernier message: 27/05/2002, 01h44

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