1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
|
/* Si tu as correctement fait ton travail, tu as surement une structure
* permettant de représenter un numéro de téléphone.
* Cela n'a sans doute pas vraiement de sens de comparer deux numéros de téléphone
* avec l'opérateur <, mais, dans ton cas, c'est une nécessité :P
*/
struct /* class ??? */ PhoneNumber{
};
bool operator <(PhoneNumber const & first, PhoneNumber const & second){
/* comment déterminer si un numéro de téléphone est "plus petit" qu'un
* autre ...
*/
}
/* la structure qui te servira à comparer deux clés */
struct Key{
std::string name;
PhoneNumber phone;
};
/* toute la magie est ici */
bool operator <(Key const & first, Key const & second){
return first.name < second.name ||
(first.name == second.name && first.phone < second.phone);
}
/* Une fois que tu as cela, tu peux l'utiliser comme paramètre de tri, par exemple,
* comme clé d'une std::map
*/
std::map<Key, TypeDeDonneeQuiTinteresse> lamap; |
Partager