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 :

[STL] for_each et transform


Sujet :

SL & STL C++

  1. #21
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Citation Envoyé par poukill
    Le fait d'utiliser for_each, et donc de passer par un foncteur ne permet t-il pas de gagner du temps à l'éxécution? Il me semblait que dans ce cas la boucle était complètement inliner par le compilo ?
    Je vois pas trop comment il le pourrait, faudrait savoir le nombre d'itérateur a la compilation. De plus si il y as un appel a une fonction pour chaque éléments, ca ne va pas allez plus rapide
    Mais le concept a l'air intéressant.

  2. #22
    Alp
    Alp est déconnecté
    Expert confirmé

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Par défaut
    Non non, il remplace juste "foreach(....)" par une boucle for, mais sans développer la boucle.

  3. #23
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    En faite, aprés recherche, il s'avert qu'il y as plusieurs bonne raison d'utiliser ces fonctions
    - boucle écrit sous forme optimisé (utilise la méthode de parcoure la plus rapide pour chaque contenaire)
    - évite des erreurs
    - ....

    Mais ce qui me gêne et que du coup c'est qu'a chaque iteration une fonction est appelé
    Du coup j'ai l'impression que l'on gagne en pref d'un coté et que l'on perd de l'autre...
    Ou alors l'appel d'un foncteur est négligeable (car l'interface de la fonction appelé est assez simple) par rapport au temps que l'on peut gagné par ces fonctions ?

  4. #24
    Alp
    Alp est déconnecté
    Expert confirmé

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Par défaut
    L'appel d'une fonction coûte un temps très très très négligeable!
    Et à côté de ça, ça t'aide pour maintenir ton code, car tu n'as pas à modifier du code à 15000 endroits mais juste à modifier le code de ta fonction.
    Ne te pose pas de questions, utilise des foncteurs. Ne t'inquiètes pas des performances, car tu ne dois même pas te poser la question tellement c'est négligeable.

    Ou bien n'utilise plus de fonctions du tout, ni de classes, et arrache toi les cheveux

  5. #25
    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 : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Si le foncteur est écrit correctement, tout est inliné et ça ne fait aucune différence par rapport à une écriture directe.

  6. #26
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Citation Envoyé par Laurent Gomila
    Si le foncteur est écrit correctement, tout est inliné et ça ne fait aucune différence par rapport à une écriture directe.
    faut donc utiliser utiliser des foncteur inline?
    (dsl si cette question semble bête )

  7. #27
    Alp
    Alp est déconnecté
    Expert confirmé

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Par défaut
    En général, le compilo optimise en inlinant, pour peu que le code soit assez bien écrit pour être inliné.

  8. #28
    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 : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    En général oui, un foncteur est toujours écrit le plus simplement possible et en un bloc. C'est plus une fonction avec, si besoin, un contexte autour, que véritablement une classe.

  9. #29
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    ok merci.
    Je commence a comprendre

  10. #30
    Membre éprouvé
    Avatar de NiamorH
    Inscrit en
    Juin 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 1 309
    Par défaut
    J'utilise BOOST_FOREACH qui se rapproche plus du For Each In de VB.Net que je connais bien.

    Je le trouve plus pratique que celui de la STL mais est-il aussi performant ?

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Transformer STL en *.obj
    Par Lost in dans le forum Traitement d'images
    Réponses: 2
    Dernier message: 28/01/2010, 18h41
  2. [STL] tutoriels sur for_each, transform, foncteur
    Par yan dans le forum SL & STL
    Réponses: 4
    Dernier message: 26/07/2007, 13h41
  3. [STL][algorithm]for_each vs transform
    Par r0d dans le forum SL & STL
    Réponses: 6
    Dernier message: 25/07/2007, 11h52
  4. pb for_each stl
    Par CedricMocquillon dans le forum SL & STL
    Réponses: 4
    Dernier message: 03/05/2007, 09h50
  5. [Debutant][STL] For_each instance
    Par Mucho dans le forum SL & STL
    Réponses: 2
    Dernier message: 17/03/2006, 16h29

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