Advertisement
Guest User

Tempelate

a guest
Sep 23rd, 2014
203
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.26 KB | None | 0 0
  1. template <class T, class TCompare>
  2. class SortingMachine1
  3.     //! SortingMachine1 is modeled by tuple of
  4.     //!             contents:  FiniteMultiSet(T)
  5.     //!             inserting: boolean
  6.     //! exemplar self
  7.  
  8.     //! math operation IS_FIRST (
  9.     //!          s: FiniteMultiSet(T),
  10.     //!          x: T
  11.     //!      ): boolean
  12.     //!      definition
  13.     //!          x is in s  and
  14.     //!          for all y: Item where (y is in s)
  15.     //!              (areOrdered (x, y))
  16.  
  17.     //! TCompare required to have an areOrdered operation:
  18.     //!
  19.     //! Boolean areOrdered (T& lhs, T& rhs)
  20.     //! preserves lhs, rhs
  21.     //!   areOrdered returns true iff the two items compared
  22.     //!      are in order relative to each other.
  23.     //!   lhs stands for left hand side
  24.     //!   rhs stands for right hand side
  25.  
  26. {
  27. public: // standard Operations
  28.     SortingMachine1 ();
  29.         //! alters self
  30.         //! ensures: self.contents = { }  and  self.inserting = true
  31.     ~SortingMachine1 ();
  32.     void clear (void);
  33.         //! alters self
  34.         //! ensures: self.contents = { }  and  self.inserting = true
  35.     void transferFrom(SortingMachine1& source);
  36.         //! alters self, source
  37.         //! ensures self = #source  and  source = self.contents = { }  and  self.inserting = true
  38.     SortingMachine1& operator = (SortingMachine1& rhs);
  39.         //! alters self
  40.         //! preserves rhs
  41.         //! ensures: self = rhs
  42.  
  43.     // SortingMachine1 Specific Operations
  44.     void add (T& x);
  45.         //! alters    self
  46.         //! consumes x
  47.         //! requires:  self.inserting
  48.         //!  ensures: self.contents = #self.contents  union  {#x}  and
  49.         //!       self.inserting = true
  50.     void changeToExtractionMode (void);
  51.         //! alters self
  52.         //! requires:  self.inserting
  53.         //!  ensures: self.inserting = false  and  self.contents = #self.contents
  54.     void removeFirst (T& x);
  55.         //! alters self
  56.         //! produces x
  57.         //! requires:  not self.inserting  and  self.contents != {}
  58.         //!  ensures: IS_FIRST (#self.contents, x)  and
  59.         //!       self.contents = #self.contents / {x}  and
  60.         //!       self.inserting = false
  61.     Integer size (void);
  62.         //! preserves  self
  63.         //! ensures: size = |self.contents|
  64.     Boolean isInInsertionMode (void);
  65.         //! preserves  self
  66.         //!  ensures: isInInsertionMode = self.inserting
  67.        
  68. private: // Representation
  69. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement