This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
in202:seance_3:td_3:part_ii [2021/04/06 13:55] bmonsuez |
in202:seance_3:td_3:part_ii [2022/11/18 10:46] (current) |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== TD3 - Partie 2 - Les classes génériques ====== | ====== TD3 - Partie 2 - Les classes génériques ====== | ||
+ | |||
+ | [[..:td_3|Sujet complet]] | ||
===== Question n°1 ===== | ===== Question n°1 ===== | ||
- | Nous considérons désormais une classe ''KeyValuePair'' qui stocke un pair de deux éléments, l'un correspondant à une clé et l'autre correspondant à la valeur associé à cette clé : | + | Nous considérons désormais une classe ''key_value_pair'' qui stocke une paire de deux éléments, l'un correspondant à une clé et l'autre correspondant à la valeur associée à cette clé : |
<code cpp> | <code cpp> | ||
Line 17: | Line 19: | ||
public: | public: | ||
- | key_value_pair(int theKey, int theValue): | + | key_value_pair(int theKey, std::string theValue): |
m_key(theKey), m_value(theValue) {} | m_key(theKey), m_value(theValue) {} | ||
int getKey() const { return m_key; } | int getKey() const { return m_key; } | ||
- | int getValue() const { return m_value; } | + | std::string getValue() const { return m_value; } |
| | ||
- | int setKey(int theKey) { m_key = theKey; } | + | void setKey(int theKey) { m_key = theKey; } |
- | int setValue(std::string theValue) { m_value = theValue; } | + | void setValue(std::string theValue) { m_value = theValue; } |
}; | }; | ||
Line 40: | Line 42: | ||
<code cpp> | <code cpp> | ||
template<class T> | template<class T> | ||
- | key_value_pair<int, T> find_max(std::vector<T> theVector, T theValue) | + | key_value_pair<int, T> find_max(std::vector<T> theVector) |
{ | { | ||
... | ... | ||
Line 56: | Line 58: | ||
key_value_pair<int, int> max = find_max(vec); | key_value_pair<int, int> max = find_max(vec); | ||
| | ||
- | std::cout << "Position: << max.getKey() << ", Value: " << max.getValue() << "\n"; | + | std::cout << "Position: " << max.getKey() << ", Value: " << max.getValue() << "\n"; |
} | } | ||
</code> | </code> | ||
- | + | ||
+ | ==== Code présenté pendant le cours ==== | ||
+ | |||
+ | {{https://perso.ensta-paris.fr/~bmonsuez/Media/code/in202/2021/td3/part2/part2.cpp|''part2.cpp''}} Fichier principal contient les fonctions de test et le main. | ||
+ | |||
+ | {{https://perso.ensta-paris.fr/~bmonsuez/Media/code/in202/2021/td3/part2/key_value_pair.h|''key_value_pair.h''}} Définition de la classe générique. | ||
+ | |||
+ | ===== Liens vers les éléments syntaxiques et ressources externes ===== | ||
+ | |||
+ | [[https://en.cppreference.com/w/cpp/container/vector|La classe ''std::vector<>'']] | ||
+ | |||
+ | [[cpp:syntax:class:generic|Les classes génériques en C++]] | ||
+ | |||
+ | |||
+ | ===== Navigation ===== | ||
+ | |||
+ | |||
+ | [[.:part_i|Première partie]] | ||
+ | [[.:part_iii|Troisième partie]] | ||