CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Aide C++

Nitame
Nitame
Niveau 8
13 janvier 2016 à 22:16:09

Bonsoir, je débute en C++ et je nute sur 2 choses que je ne comprends pas du tout, leur utilité et la façon de les utiliser malgré les explications de mon professeur.

Ce sont les iterateurs et les templates.

Est-ce que quelqu'un pourrait m'éclairer avec des explications les plus simples possibles.

LGV
LGV
Niveau 28
13 janvier 2016 à 22:35:31

Il faudrait voir comment ca t'a ete presente en cours pour repondre au mieux, mais pour faire simple on pourrait dire, en faisant qq grosses approximations et simplifications :

- les iterateurs sont des accesseurs "intelligents" qui permettent de "parcourir" des structures de donnees, justement en "iterant" sur les elements

- les templates utilisent le pre-processeur pour generer du code ou des specialisations de code pendant la phase de compilation. Ca rentre dans la meta-programmation, car on ecrit du code template qui genere du code (non template) qui sera ensuite compile et linke. En pratique ca sert a ecrire des structures de donnees ou algorithme "generiques" qui sont specialises a la compilation, mais aussi a implementer des version o(1) de certain algo lineaires

MrGreez94
MrGreez94
Niveau 10
13 janvier 2016 à 22:59:02

Le 13 janvier 2016 à 22:35:31 LGV a écrit :
Il faudrait voir comment ca t'a ete presente en cours pour repondre au mieux, mais pour faire simple on pourrait dire, en faisant qq grosses approximations et simplifications :

- les iterateurs sont des accesseurs "intelligents" qui permettent de "parcourir" des structures de donnees, justement en "iterant" sur les elements

- les templates utilisent le pre-processeur pour generer du code ou des specialisations de code pendant la phase de compilation. Ca rentre dans la meta-programmation, car on ecrit du code template qui genere du code (non template) qui sera ensuite compile et linke. En pratique ca sert a ecrire des structures de donnees ou algorithme "generiques" qui sont specialises a la compilation, mais aussi a implementer des version o(1) de certain algo lineaires

Je rajouterais juste un point à propos des iterateurs. Leur gros avantage est qu'ils permettent de parcourir des structures sans connaitre le type d’élément qu'ils contiennent

Nitame
Nitame
Niveau 8
13 janvier 2016 à 23:20:07

Merci pour tes définitions, le soucis c'est que ce n'est pas clair.

Etant habitué à parcourir un tableau avec la boucle "for", le lendemain mon cher prof nous demande de faire la même chause avec des iterateurs et la c'est le NEANT.

Concernant les templates, l'idée que j'ai d'eux est très embrouillés. Pour moi, on crée un template lorsqu'on ne désire pas spécifier le type des paramètres entrés dans la fonction.

LGV
LGV
Niveau 28
14 janvier 2016 à 00:00:00

Etant habitué à parcourir un tableau avec la boucle "for"

Pour parcourir avec un "for", tu dois implicitement connaitre la nature de ta structure de donnees. L'idee meme des iterateurs est d'abstraire les elements contenus du container qui les contient. Tant que t'as acces a une iterateurs, tu peux parcourir les donnees sans savoir comment elles sont stockes en internet (tableau, liste, arbre, etc.)

Pour moi, on crée un template lorsqu'on ne désire pas spécifier le type des paramètres entrés dans la fonction

Oui - mais la motivation pour vouloir ne pas specifier le type de parametre, c'est d'ecrire en une seule fois un algo ou une structure de donnees qui marche pour *plusieurs* types de donnees.

Quand tu definis un template<params>, pour chaque combinaison de type de parametres utilisant ce template, le pre-processeur genere le code correspondant a ces types specifiques

Gaetano-GX
Gaetano-GX
Niveau 31
15 janvier 2016 à 12:13:15

HS mais no troll:
GG à mon VDD pour l'heure de son post...

Sous forums
  • Aide à l'achat Mac
  • Steam Deck
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Macintosh
  • Hardware
La vidéo du moment