ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/template/src/tpl_set.h
Revision: 919
Committed: Tue Mar 6 17:51:54 2018 UTC (7 years, 2 months ago) by couturad
Content type: text/plain
File size: 1606 byte(s)
Log Message:
Correction des bugs lors de l'execution en mode RELWITHDEBINFO.
Ajouts de fichiers pour la librairie MICROSTRUCTURE

File Contents

# User Rev Content
1 5 #ifndef TPL_SETH
2     #define TPL_SETH
3    
4     #include <stdio.h>
5    
6     #ifdef BORLANDCPP
7     #include <set.h>
8     #else
9     #include <set>
10     #endif
11    
12     template <class X>
13     class TPL_SET
14     {
15     public:
16     typedef typename std::set< X >::iterator ITERATEUR;
17    
18     TPL_SET() {};
19     TPL_SET(TPL_SET< X > & src){lst_X = src.lst_X;};
20     ~TPL_SET() {};
21    
22     /*
23     syntaxe :
24     TPL_SET<MG_ELEMENT_MAILLAGE*> liste;
25     TPL_SET<MG_ELEMENT_MAILLAGE*>::ITERATEUR it;
26     MG_ELEMENT_MAILLAGE* element;
27     for (element = liste.get_premier(it); element; element = liste.get_suivant(it) )
28     {
29     printf("element id = %d", element->get_id());
30     }
31     */
32    
33    
34     void ajouter(X x)
35     {
36     lst_X.insert(x);
37     };
38    
39    
40    
41     void supprimer(X x)
42     {
43     ITERATEUR j=lst_X.find(x);
44     if (j==lst_X.end())
45     {
46     return;
47     }
48     lst_X.erase(j);
49     };
50    
51     bool contient(X x)
52     {
53     return (lst_X.find(x) != lst_X.end());
54     }
55    
56    
57     int get_nb(void)
58     {
59     return lst_X.size();
60     };
61    
62    
63     X get(int num)
64     {
65     ITERATEUR j=lst_X.begin();
66     std::advance (j, num);
67     if (j == lst_X.end())
68     return NULL;
69     return *j;
70     };
71    
72     void vide(void)
73     {
74     lst_X.clear();
75     };
76    
77    
78     X get_premier(ITERATEUR &it)
79     {
80     it = lst_X.begin();
81     if (it == lst_X.end())
82     return NULL;
83     return *it;
84     };
85    
86     X get_suivant(ITERATEUR &it)
87     {
88     it++;
89     if (it == lst_X.end())
90     return NULL;
91     return *it;
92     }
93    
94     void ajouter (const TPL_SET < X > & ref )
95     {
96     ITERATEUR it;
97     for (X element = ref.get_premier(it); element; element = ref.get_suivant(it))
98     ajouter(element);
99     }
100    
101     private:
102     std::set< X > lst_X;
103    
104    
105     };
106    
107    
108    
109    
110    
111    
112    
113    
114     #endif