Advertisement
Guest User

sl.h

a guest
Jan 21st, 2018
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.83 KB | None | 0 0
  1. #ifndef SL_H
  2. #define SL_H
  3.  
  4. #include <list>
  5. #include <algorithm>
  6. #include <iterator>
  7. #include <functional>
  8.  
  9. template<typename T, class Compare = std::less<T>>
  10. class SortedList
  11. {
  12.     typedef std::list<T>                        l_type;
  13.     typedef typename l_type::const_iterator     l_it;
  14.     l_type                                      l;
  15.    
  16. public:
  17.     SortedList() { }
  18.    
  19.     void insert(T e) { l.insert(std::lower_bound(l.begin(), l.end(), e, Compare()), e); }
  20.    
  21.     int size() const { return l.size(); }
  22.    
  23.     T front() const { return l.front(); }
  24.    
  25.     // 3-as
  26.     void remove(T e) { l.remove(e); }
  27.    
  28.     T back() const { return l.back(); }
  29.    
  30.     // 4-es
  31.     l_it begin() const { return l.cbegin(); }
  32.    
  33.     l_it end() const { return l.cend(); }
  34.    
  35.     // 5-ΓΆs
  36.     template <typename Iterator>
  37.     SortedList(Iterator begin, Iterator end) { for (Iterator it = begin; it != end; it++) insert(*it); }
  38. };
  39.  
  40. #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement