My Project
moveStack.h
Go to the documentation of this file.
1 #ifndef _MOVE_STACK_H
2 #define _MOVE_STACK_H
3 #include "osl/container.h"
4 #include <vector>
5 #include <cassert>
6 namespace osl
7 {
8  namespace container
9  {
14  class MoveStack
15  {
16  typedef std::vector<Move> vector_t;
18  public:
19  MoveStack();
20  ~MoveStack();
21 
22  void reserve(size_t);
23  void clear();
24  void push(Move m) { data.push_back(m); }
25  void pop() { data.pop_back(); }
27  bool hasLastMove(size_t last=1) const { return size()>=last; }
28  const Move lastMove(size_t last=1) const
29  {
30  const size_t index = data.size() - last;
31  assert(index < data.size());
32  return data[index];
33  }
34  size_t size() const { return data.size()-2; }
38  void dump(size_t last_n=0) const;
39  void dump(std::ostream&, size_t last_n=0) const;
40  bool operator==(const MoveStack& r) const
41  {
42  return data == r.data;
43  }
44  };
45 } // namespace container
46  using container::MoveStack;
47 } // namespace osl
48 #endif // _MOVE_STACK_H
49 // ;;; Local Variables:
50 // ;;; mode:c++
51 // ;;; c-basic-offset:2
52 // ;;; End:
osl::container::MoveStack::push
void push(Move m)
Definition: moveStack.h:24
osl::container::MoveStack::vector_t
std::vector< Move > vector_t
Definition: moveStack.h:16
osl::container::MoveStack::data
vector_t data
Definition: moveStack.h:17
osl::Move
圧縮していない moveの表現 .
Definition: basic_type.h:1052
osl::container::MoveStack::reserve
void reserve(size_t)
Definition: moveStack.cc:15
osl::container::MoveStack::lastMove
const Move lastMove(size_t last=1) const
Definition: moveStack.h:28
osl::container::MoveStack
Move のstack.
Definition: moveStack.h:15
container.h
osl::container::MoveStack::dump
void dump(size_t last_n=0) const
Definition: moveStack.cc:43
osl::container::MoveStack::MoveStack
MoveStack()
Definition: moveStack.cc:5
osl::container::MoveStack::pop
void pop()
Definition: moveStack.h:25
osl::container::MoveStack::~MoveStack
~MoveStack()
Definition: moveStack.cc:11
osl::container::MoveStack::hasLastMove
bool hasLastMove(size_t last=1) const
Definition: moveStack.h:27
osl::container::MoveStack::size
size_t size() const
Definition: moveStack.h:34
osl::container::MoveStack::operator==
bool operator==(const MoveStack &r) const
Definition: moveStack.h:40
osl::container::MoveStack::clear
void clear()
Definition: moveStack.cc:20
osl
Definition: additionalEffect.h:6