Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

Loading...
Searching...
No Matches
ring.h
Go to the documentation of this file.
1
30#pragma once
31
33
34
35#pragma GCC visibility push(default)
36namespace abacus {
37
38template <class Type>
39class AbaRing;
40
41template <class Type>
42std::ostream &operator<< (std::ostream &out, const AbaRing<Type> &ring);
43
44
46
52template <class Type> class AbaRing : public AbacusRoot {
53public:
54
56
59 explicit AbaRing(int size);
60
62 virtual ~AbaRing() { }
63
65
74 friend std::ostream &operator<< <> (std::ostream &out, const AbaRing<Type> &ring);
75
77
82 Type& operator[](int i);
83
85 const Type& operator[](int i) const;
86
88
94 void insert(Type elem);
95
97 void clear();
98
100 int size() const;
101
103 int number() const;
104
106
109 Type oldest() const;
110
112
115 int oldestIndex() const;
116
118
121 Type newest() const;
122
124
127 int newestIndex() const;
128
130
140 int previous(int i, Type &p) const;
141
143 bool empty() const;
144
146 bool filled() const;
147
149
154 void realloc(int newSize);
155
156private:
157
160
162 int head_;
163
166};
167
168}
169
171#pragma GCC visibility pop
Bounded circular lists.
Definition ring.h:52
bool filled() const
Returns true If the ring is completely filled up, false otherwise.
const Type & operator[](int i) const
The operator [] is overloaded for constant use.
int number() const
Returns the current number of elements in the ring.
Type newest() const
Returns the newest element in the ring.
virtual ~AbaRing()
The destructor.
Definition ring.h:62
int size() const
Returns the size of the ring.
Type & operator[](int i)
Returns the i-th element of the ring.
Type oldest() const
Returns the oldest element in the ring.
void clear()
Empties the ring.
int newestIndex() const
Returns the index of the newest element in the ring.
bool empty() const
Returns true if no element is contained in the ring, false otherwise.
void realloc(int newSize)
Changes the length of the ring.
int previous(int i, Type &p) const
Can be used to access any element between the oldest and newest inserted element.
Array< Type > ring_
An array storing the elements of the ring.
Definition ring.h:159
int oldestIndex() const
Returns the index of the oldest element in the ring.
int head_
The position in the array ring_ where the next element will be inserted.
Definition ring.h:162
AbaRing(int size)
The constructor.
bool filled_
This member becomes true if ring is completely filled up.
Definition ring.h:165
void insert(Type elem)
Inserts a new element into the ring.
Base class of all other classes of ABACUS.
Definition abacusroot.h:69
The parameterized class Array implements dynamic arrays of type E.
Definition Array.h:219
std::ostream & operator<<(std::ostream &out, const Active< BaseType, CoType > &rhs)