ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/template/src/tpl_set.h
Revision: 5
Committed: Tue Jun 12 20:26:34 2007 UTC (17 years, 11 months ago)
Content type: text/plain
Original Path: magic/lib/template/template/src/tpl_set.h
File size: 1610 byte(s)
Log Message:

File Contents

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