2525namespace cubpackpp {
2626// ////////////////////////////////////////////
2727
28- template <class T , int CAPACITY>
28+ template <class T , unsigned int CAPACITY>
2929 SubHeap<T, CAPACITY>::SubHeap()
3030 :Set<T>() {
3131 ActiveChild = -1 ;
3232 LastChild = -1 ;
3333 }
3434
3535// //////////////////////////////////////////////
36- template <class T , int CAPACITY>
36+ template <class T , unsigned int CAPACITY>
3737 SubHeap<T, CAPACITY>::~SubHeap () {
3838 Clear ();
3939 }
4040
4141// /////////////////////////////////////////////
42- template <class T , int CAPACITY>
42+ template <class T , unsigned int CAPACITY>
4343 T *
4444 SubHeap<T, CAPACITY>::Get() {
4545 Error (this ->Number == 0 , " error:get from empty heap" );
@@ -48,9 +48,9 @@ namespace cubpackpp {
4848 return Contents[1 ];
4949 };
5050 T *B = Bottom ();
51- if (LastChild == CAPACITY && Children[ActiveChild]->Saturated ()) {
51+ if (LastChild == static_cast < int >( CAPACITY) && Children[ActiveChild]->Saturated ()) {
5252 ActiveChild--;
53- if (ActiveChild < 0 ) ActiveChild = CAPACITY;
53+ if (ActiveChild < 0 ) ActiveChild = static_cast < int >( CAPACITY) ;
5454 };
5555 T *Result = Contents[1 ];
5656 int Hole = 1 ;
@@ -84,7 +84,7 @@ namespace cubpackpp {
8484 };
8585 putinhole:
8686 Contents[Hole] = B;
87- if ((CAPACITY + 1 ) / 2 <= Hole && Hole <= CAPACITY) {
87+ if ((static_cast < int >( CAPACITY) + 1 ) / 2 <= Hole && Hole <= static_cast < int >( CAPACITY) ) {
8888 First = LeftChild (Hole);
8989 Second = RightChild (Hole);
9090 if (LastChild >= Second) {
@@ -111,15 +111,15 @@ namespace cubpackpp {
111111 }
112112
113113// /////////////////////////////////////////////////
114- template <class T , int CAPACITY>
114+ template <class T , unsigned int CAPACITY>
115115 T *
116116 SubHeap<T, CAPACITY>::Look() {
117117 Error (this ->Number == 0 , " Looking at empty heap" );
118118 return Contents[1 ];
119119 }
120120// /////////////////////////////////////////////////
121121
122- template <class T , int CAPACITY>
122+ template <class T , unsigned int CAPACITY>
123123 T *
124124 SubHeap<T, CAPACITY>::Swap(T *B) {
125125 T *Result = Contents[1 ];
@@ -154,7 +154,7 @@ namespace cubpackpp {
154154 };
155155 putinhole:
156156 Contents[Hole] = B;
157- if ((CAPACITY + 1 ) / 2 <= Hole && Hole <= CAPACITY) {
157+ if ((static_cast < int >( CAPACITY) + 1 ) / 2 <= Hole && Hole <= static_cast < int >( CAPACITY) ) {
158158 First = LeftChild (Hole);
159159 Second = RightChild (Hole);
160160 if (LastChild >= Second) {
@@ -181,22 +181,22 @@ namespace cubpackpp {
181181 }
182182
183183// /////////////////////////////////////////////////
184- template <class T , int CAPACITY>
184+ template <class T , unsigned int CAPACITY>
185185 Boolean
186186 SubHeap<T, CAPACITY>::Saturated()
187187 const {
188- if (this ->Number != CAPACITY) return False;
188+ if (this ->Number != static_cast < int >( CAPACITY) ) return False;
189189 if (LastChild < 0 ) return True;
190- if (LastChild != CAPACITY) return False;
190+ if (LastChild != static_cast < int >( CAPACITY) ) return False;
191191 Boolean Return = True;
192- for (int i = 0 ; i < CAPACITY + 1 ; i++) {
192+ for (int i = 0 ; i < static_cast < int >( CAPACITY) + 1 ; i++) {
193193 Return = static_cast <Boolean>( (Return & Children[i]->Saturated ()));
194194 };
195195 return Return;
196196 }
197197
198198// //////////////////////////////////////////////////
199- template <class T , int CAPACITY>
199+ template <class T , unsigned int CAPACITY>
200200 T *
201201 SubHeap<T, CAPACITY>::Bottom() {
202202 Error (this ->Number == 0 , " error:Bottom of empty subheap" );
@@ -217,15 +217,15 @@ namespace cubpackpp {
217217// //////////////////////////////////////////////////
218218
219219
220- template <class T , int CAPACITY>
220+ template <class T , unsigned int CAPACITY>
221221 void
222222 SubHeap<T, CAPACITY>::operator +=(T *t) {
223223 T *NewT;
224224 int Hole;
225225 if (ActiveChild >= 0 ) {
226226 if (Children[ActiveChild]->Saturated ()) {
227227 ActiveChild++;
228- ActiveChild %= (CAPACITY + 1 );
228+ ActiveChild %= (static_cast < int >( CAPACITY) + 1 );
229229 if (ActiveChild > LastChild) {
230230 LastChild = ActiveChild;
231231 Children[ActiveChild] = new SubHeap<T, CAPACITY>;
@@ -240,7 +240,7 @@ namespace cubpackpp {
240240 return ;
241241 };
242242 } else {
243- if (this ->Number == CAPACITY) {
243+ if (this ->Number == static_cast < int >( CAPACITY) ) {
244244 ActiveChild = LastChild = 0 ;
245245 Children[ActiveChild] = new SubHeap<T, CAPACITY>;
246246 Error (!Children[ActiveChild], " heap:allocation failed" );
@@ -271,7 +271,7 @@ namespace cubpackpp {
271271 }
272272
273273// //////////////////////////////////////////////////
274- template <class T , int CAPACITY>
274+ template <class T , unsigned int CAPACITY>
275275 void
276276 SubHeap<T, CAPACITY>::Clear() {
277277 int i;
@@ -288,7 +288,7 @@ namespace cubpackpp {
288288 }
289289
290290// //////////////////////////////////////////////////
291- template <class T , int CAPACITY>
291+ template <class T , unsigned int CAPACITY>
292292 void
293293 SubHeap<T, CAPACITY>::Print()
294294 const {
@@ -305,25 +305,25 @@ namespace cubpackpp {
305305 }
306306
307307// /////////////////////////////////////////////////
308- template <class T , int CAPACITY>
308+ template <class T , unsigned int CAPACITY>
309309 int
310- SubHeap<T, CAPACITY>::FatherOfChild(int i)
310+ SubHeap<T, CAPACITY>::FatherOfChild( int i)
311311 const {
312- return i / 2 + (CAPACITY + 1 ) / 2 ;
312+ return i / 2 + (static_cast < int >( CAPACITY) + 1 ) / 2 ;
313313 }
314314
315315// /////////////////////////////////////////////////
316- template <class T , int CAPACITY>
317- int
318- SubHeap<T, CAPACITY>::LeftChild(int i)
316+ template <class T , unsigned int CAPACITY>
317+ int
318+ SubHeap<T, CAPACITY>::LeftChild( int i)
319319 const {
320- return 2 * (i - (CAPACITY + 1 ) / 2 );
320+ return 2 * (i - (static_cast < int >( CAPACITY) + 1 ) / 2 );
321321 }
322322
323323// ////////////////////////////////////////////////
324- template <class T , int CAPACITY>
325- int
326- SubHeap<T, CAPACITY>::RightChild(int i)
324+ template <class T , unsigned int CAPACITY>
325+ int
326+ SubHeap<T, CAPACITY>::RightChild( int i)
327327 const {
328328 return LeftChild (i) + 1 ;
329329 }
0 commit comments