Mon code est:
La fonction sert à savoir si l'objet p appartient au conteneur v.
La classe template G, par exmple int, est muni de l'opérateur de comparaison ==.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 template<typename T,typename G> bool bool_inter2( T<G> v, G p) { typename T<G>::iterator it1; for(it=v.begin();it<v.begin();it++) { if(p==*it)return true; } return false; }
La classe template F est un conteneur d'objet, par exemple vector, tel que l'on peut parcourir l'ensemble des objets contenus avec l'iterator.
Cependant le code ne compile pas:
L'autre solution que j'ai envisage est:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 point.cpp:911: erreur: «T» is not a template
De nouveau, ca ne compile pas: il n'arrive pas à choisir entre les deux fonctions.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 template<typename T,class G> bool bool_inter( G p, T v) { typename T::iterator it; for(it=v.begin();it<v.end();it++) { if(*it==p)return true; } return false; } template<typename T,class G> bool bool_inter( T v,G p) { typename T::iterator it; for(it=v.begin();it<v.end();it++) { if(*it==p)return true; } return false; }
Avez-vous des solutions merci!
Partager