MAGiC  V5.0
Mailleurs Automatiques de Géometries intégrés à la Cao
tpl_liste_entite.h
Aller à la documentation de ce fichier.
1 //####//------------------------------------------------------------
2 //####//------------------------------------------------------------
3 //####// MAGiC
4 //####// Jean Christophe Cuilliere et Vincent FRANCOIS
5 //####// Departement de Genie Mecanique - UQTR
6 //####//------------------------------------------------------------
7 //####// MAGIC est un projet de recherche de l equipe ERICCA
8 //####// du departement de genie mecanique de l Universite du Quebec a Trois Rivieres
9 //####// http://www.uqtr.ca/ericca
10 //####// http://www.uqtr.ca/
11 //####//------------------------------------------------------------
12 //####//------------------------------------------------------------
13 //####//
14 //####// tpl_liste_entite.h
15 //####//
16 //####//------------------------------------------------------------
17 //####//------------------------------------------------------------
18 //####// COPYRIGHT 2000-2024
19 //####// jeu 13 jun 2024 11:54:00 EDT
20 //####//------------------------------------------------------------
21 //####//------------------------------------------------------------
22 #ifndef _TPLLISTEENTITE_
23 #define _TPLLISTEENTITE_
24 
25 
26 
27 #include <vector>
28 #include <algorithm>
29 
30 
31 template <class X>
33 {
34 public:
36 virtual ~TPL_LISTE_ENTITE() {};
37 
38 virtual void ajouter(X x)
39 {
40  lst_X.push_back(x);
41 };
42 virtual void supprimer(X x)
43 {
44 
45 typename std::vector<X>::iterator i=std::find(lst_X.begin(),lst_X.end(),x);
46 while( i != lst_X.end())
47 {
48  lst_X.erase(i);
49  i=std::find(lst_X.begin(),lst_X.end(),x);
50 }
51 };
52 virtual void supprimer(int num1,int num2)
53 {
54 if (num1>get_nb()-1) return;
55  if (num1>=get_nb()) return;
56  if (num2<num1) return;
57  if (num2>=get_nb()) num2=get_nb()-1;
58 typename std::vector<X>::iterator i=lst_X.begin()+num1;
59 typename std::vector<X>::iterator j=lst_X.begin()+num2+1;
60 lst_X.erase(i,j);
61 /*for (int j=num1;j<num2+1;j++)
62  {
63  lst_X.erase(i);
64  i++;
65  }*/
66 };
67 virtual int get_nb(void)
68 {
69 return lst_X.size();
70 };
71 
72 virtual X get(int num)
73 {
74 return lst_X[num];
75 };
76 
77 virtual void vide(void)
78 {
79 lst_X.clear();
80 };
81 
82 virtual int est_dans_la_liste(X x)
83 {
84 if (lst_X.size()==0) return 0;
85 typename std::vector<X>::iterator i=std::find(lst_X.begin(),lst_X.end(),x);
86 if (i==lst_X.end()) return 0;
87 if ((*i)==x) return 1;
88 return 0;
89 }
90 
91 private:
92 typename std::vector<X> lst_X;
93 
94 
95 };
96 
97 
98 
99 
100 
101 
102 
103 
104 #endif
TPL_LISTE_ENTITE::~TPL_LISTE_ENTITE
virtual ~TPL_LISTE_ENTITE()
Definition: tpl_liste_entite.h:36
TPL_LISTE_ENTITE::est_dans_la_liste
virtual int est_dans_la_liste(X x)
Definition: tpl_liste_entite.h:82
TPL_LISTE_ENTITE::lst_X
std::vector< X > lst_X
Definition: tpl_liste_entite.h:92
TPL_LISTE_ENTITE::TPL_LISTE_ENTITE
TPL_LISTE_ENTITE()
Definition: tpl_liste_entite.h:35
TPL_LISTE_ENTITE::ajouter
virtual void ajouter(X x)
Definition: tpl_liste_entite.h:38
TPL_LISTE_ENTITE::get_nb
virtual int get_nb(void)
Definition: tpl_liste_entite.h:67
TPL_LISTE_ENTITE::get
virtual X get(int num)
Definition: tpl_liste_entite.h:72
TPL_LISTE_ENTITE::vide
virtual void vide(void)
Definition: tpl_liste_entite.h:77
TPL_LISTE_ENTITE::supprimer
virtual void supprimer(int num1, int num2)
Definition: tpl_liste_entite.h:52
TPL_LISTE_ENTITE
Definition: tpl_liste_entite.h:32
TPL_LISTE_ENTITE::supprimer
virtual void supprimer(X x)
Definition: tpl_liste_entite.h:42