src/list.h

changeset 125
85814c0918c5
parent 124
a7b769a0e537
child 133
dbbdb870c835
equal deleted inserted replaced
124:a7b769a0e537 125:85814c0918c5
27 */ 27 */
28 28
29 #ifndef BOTC_LIST_H 29 #ifndef BOTC_LIST_H
30 #define BOTC_LIST_H 30 #define BOTC_LIST_H
31 31
32 #include <cassert> 32 #include "macros.h"
33 #include <algorithm> 33 #include <algorithm>
34 #include <deque> 34 #include <deque>
35 #include <initializer_list> 35 #include <initializer_list>
36 36
37 template<typename T> 37 template<typename T>
153 } 153 }
154 154
155 template<typename T> 155 template<typename T>
156 void List<T>::removeAt (int pos) 156 void List<T>::removeAt (int pos)
157 { 157 {
158 assert (pos < size()); 158 ASSERT_LT (pos, size());
159 _deque.erase (_deque.begin() + pos); 159 _deque.erase (_deque.begin() + pos);
160 } 160 }
161 161
162 template<typename T> 162 template<typename T>
163 inline T& List<T>::prepend (const T& value) 163 inline T& List<T>::prepend (const T& value)
239 } 239 }
240 240
241 template<typename T> 241 template<typename T>
242 inline T& List<T>::operator[] (int n) 242 inline T& List<T>::operator[] (int n)
243 { 243 {
244 assert (n < size()); 244 ASSERT_LT (n, size());
245 return _deque[n]; 245 return _deque[n];
246 } 246 }
247 247
248 template<typename T> 248 template<typename T>
249 inline const T& List<T>::operator[] (int n) const 249 inline const T& List<T>::operator[] (int n) const
250 { 250 {
251 assert (n < size()); 251 ASSERT_LT (n, size());
252 return _deque[n]; 252 return _deque[n];
253 } 253 }
254 254
255 template<typename T> 255 template<typename T>
256 inline void List<T>::resize (int size) 256 inline void List<T>::resize (int size)
291 } 291 }
292 292
293 template<typename T> 293 template<typename T>
294 List<T> List<T>::splice (int a, int b) const 294 List<T> List<T>::splice (int a, int b) const
295 { 295 {
296 assert (a >= 0 && b >= 0 && a < size() && b < size() && a <= b); 296 ASSERT_RANGE (a, 0, size() - 1)
297 ASSERT_RANGE (b, 0, size() - 1)
298 ASSERT_LT_EQ (a, b)
297 List<T> result; 299 List<T> result;
298 300
299 for (int i = a; i <= b; ++i) 301 for (int i = a; i <= b; ++i)
300 result << operator[] (i); 302 result << operator[] (i);
301 303

mercurial