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

Affichage des résultats du sondage: Utilisez-vous les algorithmes de la STL en 2012 ?

Votants
114. Vous ne pouvez pas participer à ce sondage.
  • Jamais, je les connais pas.

    26 22,81%
  • Jamais, je les aime pas.

    3 2,63%
  • Exceptionnellement.

    16 14,04%
  • Occasionnellement.

    31 27,19%
  • Les plus souvent possible.

    39 34,21%
  • Toujours.

    3 2,63%
  • Toujours à partir de maintenant, je vais appliquer ta règle.

    0 0%
Sondage à choix multiple
C++ Discussion :

Faut-il bannir le for du C++ ? [Débat]


Sujet :

C++

Vue hybride

gbdivers Faut-il bannir le for du C++ ? 31/03/2012, 22h49
Matthieu Brucher Il y a souvent des boucles... 31/03/2012, 23h05
Overcrash Bonsoir, Bannir est un... 31/03/2012, 23h06
JolyLoic J'aurais envie de répondre au... 31/03/2012, 23h45
Rewpparo Personellement j'utilise peu... 01/04/2012, 00h20
gbdivers Je pensais aussi au C++11,... 01/04/2012, 00h27
Obsidian Oui mais, en suivant ce... 01/04/2012, 01h45
koala01 Salut, J'ai voté "le plus... 01/04/2012, 02h54
spidermario En gros, c’est du sucre... 02/04/2012, 21h21
ThomasCerq Le premier argument est... 02/04/2012, 11h32
Invité Il s'agit de supprimer les... 02/04/2012, 12h25
Klaim 3. Cross platform. 4.... 02/04/2012, 13h58
Invité Je suis archi d'accord mais... 02/04/2012, 16h35
Bktero Mes cours de C++ sont allés... 02/04/2012, 16h52
barmic Je viens apporter ma... 02/04/2012, 17h02
Klaim Je suis loin d'être de cet... 02/04/2012, 14h05
Bousk Bonjour, autant avec les... 02/04/2012, 15h30
shenron666 Quelqu'un peut me donner... 04/04/2012, 10h28
gbdivers Tu prends un exemple de code... 04/04/2012, 10h44
Lightness1024 je suis vraiment désolé de ne... 04/04/2012, 11h53
tasna Personnellement j'utilise les... 19/04/2012, 19h19
guigz2000 Nawak comme question... 02/04/2012, 13h04
ManusDei Je ne comprend pas la... 02/04/2012, 13h20
kolodz Ces méthode sont un support à... 02/04/2012, 13h51
bugsan Réponse: method extract +... 02/04/2012, 14h01
themadmax Je partage un peu aussi cet... 02/04/2012, 16h14
clavier12AZQSWX avec les boucles FOR, une... 02/04/2012, 17h17
Invité pour ma part iterer sur un... 02/04/2012, 17h28
clavier12AZQSWX Programmeur........ ... 02/04/2012, 18h01
Bousk @Michael remy, je n'ai... 02/04/2012, 18h34
Invité Je ne crois pas qu'on puisse... 02/04/2012, 19h06
clavier12AZQSWX merci de m'avoir fait... 02/04/2012, 20h55
alex.buisson Suivre cette pratique releve... 02/04/2012, 22h02
K-LiBR3 Ce sont de très bonnes... 02/04/2012, 22h04
air-dex Excellent dans le cadre de... 03/04/2012, 04h10
Invité cette phrase me révolte.... 03/04/2012, 07h42
koala01 Je crois qu'il faut lui... 04/04/2012, 12h08
yan Pourtant Qt n'est pas que de... 04/04/2012, 14h36
Invité Je ne vois pas très bien en... 03/04/2012, 08h33
JolyLoic Là, tu biaise un peu la... 03/04/2012, 09h05
Invité Du coup, je ne suis pas... 03/04/2012, 09h13
air-dex Je suis d'accord qu'un... 03/04/2012, 23h41
gbdivers C'est inquiétant si une... 03/04/2012, 23h57
rhludovic C'est parfois utile et... 03/04/2012, 09h07
bizulk foreach() optimisé ? Ca... 03/04/2012, 14h00
deuz59 Cela rejoint parfaitement mon... 04/04/2012, 12h25
skypers Je trouve que l'argument... 04/04/2012, 14h54
singman Alors là, je pense qu'on... 05/04/2012, 01h25
JolyLoic Puisque je suis la personne... 05/04/2012, 02h41
Bousk Je me demandais, est-il... 05/04/2012, 10h46
cob59 Ça dépend du rôle du break... 05/04/2012, 11h25
Bousk Effectivement c'est le cas le... 05/04/2012, 11h55
cob59 Dans ce cas-là on... 05/04/2012, 12h31
koala01 A priori, ce n'est pas... 05/04/2012, 13h21
Invité Ne devrait-on pas faire à ces... 05/04/2012, 21h24
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Citation Envoyé par Bousk Voir le message
    Je me demandais, est-il possible avec une telle écriture (for range loop, foreach, ...) de réaliser un break et sortir de la boucle plus tôt ?
    Bien que je suppose qu'il s'agisse d'une mauvaise pratique.
    A priori, ce n'est pas possible,étant donné qu'elles sont clairement prévues pour itérer sur l'ensemble de l'intervalle [begin ] end, du moins, dans celles que tu cites

    De plus, mais ce n'est qu'un avis perso, je n'ai jamais aimé devoir recourir à un break ou à un continue dans une boucle, et j'ai toujours préféré, à ce moment là, utiliser une variaboe qui indique clairement la raison pour laquelle on continue (ou pour laquelle on sort de la boucle), et l'introduire dans la condition d'entrée (ou de sortie, selon le cas), quitte à changer de style de boucle, ou à placer un test qui évitera l'exécution d'une partie de code si certaines conditions ne sont pas remplies

    J'avoue cependant bien volontiers que c'est fortement inspiré de la méthode que je préfère pour envisager mes algorithmes (le nassi-schneidermann, pour ne pas le citer)
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par JolyLoic Voir le message
    Par exemple les commentaires décrivent non pas ce que fait le code, mais ce que la personne l'ayant écrit croyait qu'il faisait. (...)

    Mais surtout pour moi les commentaires les plus intéressants sont ceux qui sont donnés non pas par // ou /* */ mais par des noms de variables ou de fonctions expressifs.
    Ne devrait-on pas faire à ces noms expressifs le même procès qu'aux commentaires? Un nom de variable, ou de fonction, ne représente que l'idée que le programmeur qui l'a choisi s'en faisait (souvent avant d'écrire le code, alors que le commentaire est écrit après). Et si le programmeur ne met pas à jour ses commentaires, comment espérer qu'il le fasse avec ses noms de fonctions ou de variables, tâche plus délicate?

    Ca nous ramène à l'expressivité des algorithmes. A moins d'utiliser des lambdas partout (ce qui n'est possible que pour de petites fonctions, et ne clarifie pas forcément le code), elle est directement fonction de la qualité du nom choisi pour la fonction qu'on leur passe.

    Rien que dans la STL, les exemples de nommage trompeurs existent. Qui ne s'est pas fait prendre par le fait que remove n'enlève rien, mais "selectionne" les éléments vérifiant une condition? que search trouve l'élément recherché, alors que binary_search n'est qu'un test d'existence? que inner_product n'est pas forcément un produit, ni partial_sum une somme? Et on parle ici d'une bibilothèque standard, écrite par des pros. Que penser de nos codes en "franglais de programmeur", ou de bibliothèques écrites par des programmeurs très doués, mais dont l'anglais n'est pas forcément la matière forte?

    Au final, même si, comme tout le monde, j'essaie de "nommer expressif", je me demande souvent si c'est une si bonne idée que cela. Un nom mal choisi (ou mal compris par celui qui le lira) est nettement plus dangereux, au fond, qu'on code un peu plus difficile à lire, mais qui ne pourra induire en erreur.

    J'observe d'ailleurs que pas mal de textes de référence (en algorithmique notamment) proposent un code bien peu expressif...

    Francois
    Dernière modification par Invité ; 05/04/2012 à 22h31.

Discussions similaires

  1. Réponses: 5
    Dernier message: 20/10/2005, 10h42
  2. [Turbo C++] Fonciton containing for are not expanded inline
    Par BuG dans le forum Autres éditeurs
    Réponses: 6
    Dernier message: 17/02/2003, 06h48
  3. [VB6] For Each ... In ...
    Par Troopers dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 03/02/2003, 12h56
  4. Ce qu'il faut sous la main.
    Par ShinMei dans le forum DirectX
    Réponses: 2
    Dernier message: 18/01/2003, 14h12

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