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 :

Question d'entretien sur les itérateurs


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Inscrit en
    Novembre 2006
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 073
    Par défaut Question d'entretien sur les itérateurs
    Bonjour

    J'ai eu comme question en entretien la question suivante:

    considérons un itérateur iter sur un vecteur par exemple.

    Quelle est la différence entre iter++ et ++iter?
    Que vaut-il mieux faire entre les deux cas ?

    Je n'ai pas su répondre. Alors comme c'est une question qui revient souvent, j'aimerais bien savoir quoi dire.



    Merci

  2. #2
    Membre chevronné
    Avatar de myzu69
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2007
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2007
    Messages : 220
    Par défaut
    Bonjour,

    la différence est celle qu'il y a entre la pré et la post incrémentation. J'avais lu quelque part que les compilos optimisaient pareil pour les types de base (int, ...) mais avaient plus de mal pour des types plus complexes comme les itérateurs.

    Lorsque l'on fait une post-incrémentation, il y a une copie de la variable qui est faite, alors que pas en pré-incrémentation. Donc dans ce cas je pense qu'il faut plutôt faire ++iter.

    Voilà, je ne suis pas sûr à 100% de ce que j'avance, je vais essayer de retrouver l'article ...

    EDIT : ha ben en fait y'a un article dans la FAQ : http://cpp.developpez.com/faq/cpp/?p...GE_rapidite_pp
    La différence ne semble pas énorme ...

    Ha oui et ce serait possible d'avoir le nom de la boite où tu as passé l'entretien ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 32
    Par défaut
    Bonjour,

    A vrai dire un i++ ou ++i sont équivalents si le résultat n'est pas utilisé. Après un ++i va permettre éventuellement d'économiser un peu de mémoire car on n'a plus besoin de stocker la valeur de i (itérateur ou entier même combat).
    Apres c'est peut etre un peu HS pour ce thread mais la FAQ m'a fait réagir.. ++i n'est pas toujours supérieur à i++ ! Mais à vrai dire je pense qu'il n'y à qu'un cas où c'est faux : array[++i] et array[i++]. Le premier cas (i++) ne peut etre que plus efficace car le calcul de l'adresse du tableau n'a pas besoin d'attendre celle de i.

  4. #4
    gl
    gl est déconnecté
    Rédacteur

    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    2 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 165
    Par défaut
    Citation Envoyé par Idwakest Voir le message
    Mais à vrai dire je pense qu'il n'y à qu'un cas où c'est faux : array[++i] et array[i++]. Le premier cas (i++) ne peut etre que plus efficace car le calcul de l'adresse du tableau n'a pas besoin d'attendre celle de i.
    Dans ce cas, chercher le plus rapide n'a que peu de sens puisque le comportement n'est pas le même dans les deux cas.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 32
    Par défaut
    Citation Envoyé par gl Voir le message
    Dans ce cas, chercher le plus rapide n'a que peu de sens puisque le comportement n'est pas le même dans les deux cas.
    Et en décalant l'indice de 1 dans une boucle par exemple ??

  6. #6
    gl
    gl est déconnecté
    Rédacteur

    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    2 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 165
    Par défaut
    Citation Envoyé par Idwakest Voir le message
    Et en décalant l'indice de 1 dans une boucle par exemple ??
    Pardon ? Peux-tu préciser ce que tu entends par là ?

  7. #7
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2009
    Messages : 29
    Par défaut
    Citation Envoyé par myzu69 Voir le message
    Ha oui et ce serait possible d'avoir le nom de la boite où tu as passé l'entretien ?
    Hum, je plussoie la question là. C'est choquant le truc de l'itérateur :o

  8. #8
    Membre émérite
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    780
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 780
    Par défaut
    oui, qu'on y aille pas par erreur.

    non mais n'importe quoi, le mec qui pose une question un peu idiote et qui se trompe dans la réponse.. ou alors c'est fait exprès pour savoir ce que tu dis, mais c'est un peu bête dans l'entretient

  9. #9
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut
    En même temps, le recruteur l'a peut être fait exprès.
    Je me mets à sa place : je dis une énorme connerie. Le candidat ne réagit pas. Bon, bah... dehors !

    deubelte, j'ai une question pour toi:
    T'as pas l'impression de mettre un peu la charrue avant les boeufs parfois ? J'ai reparcouru quelques posts à toi, et j'y ai trouvé des trucs hyper techniques genre :
    • Comment se passe réellement l'allocation mémoire ? voir ICI
    • Qu'est ce qu'une sémantique ? Pendant un de tes autres entretiens où tu sembles répondre des choses que tu ne comprends pas : voir ICI


    Et là, devine quoi, je tombe sur un post où tu demandes spécifiquement quelle est la différence entre la post et la pré incrémentation : voir ICI

    Y'a comme un problème, tu ne trouves pas ?

  10. #10
    Membre éprouvé
    Inscrit en
    Novembre 2006
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 073
    Par défaut
    Y'a comme un problème, tu ne trouves pas ?
    Je sais, mais étant donné que j'apprends par moi-même le C++, tout vient un peu en même temps tu comprends. Alors c'est pour cela.

    L'apprentissage par soi même ne peut pas être linéaire. Surtout qqch comme le C++ qui demande des connaissances en langage mais aussi en informatique plus générale


    Héhé, il ne te reste qu'à envoyer ton CV au boss du gars qui t'a fait passer l'entretien, en lui expliquant qu'il ferait bien de relever un peu le niveau de son équipe
    Lol, ce sera difficile, c'était justement le boss de la boîte.
    Etant donné le nombre de personnes qui doivent coder en C++ sans vraiment avoir le niveau, je n'imagine pas ce que l'on doit trouver comme erreurs/bug dans les dev C++ des entreprises.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Question toute bête sur les formulaires
    Par pekka77 dans le forum Langage
    Réponses: 5
    Dernier message: 01/12/2005, 23h45
  2. Question de base sur les classes
    Par deaven dans le forum C++
    Réponses: 3
    Dernier message: 27/11/2005, 16h20
  3. [c#] une question de noob... sur les textbox
    Par warenbe dans le forum Windows Forms
    Réponses: 3
    Dernier message: 02/08/2005, 23h13
  4. question de débutant sur les objets
    Par boucher_emilie dans le forum ASP
    Réponses: 3
    Dernier message: 06/08/2004, 10h51
  5. [LG]J'ai honte : question de cours sur les paramètres
    Par letibdesneiges dans le forum Langage
    Réponses: 14
    Dernier message: 17/01/2004, 13h57

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