ORIGINAL
Loading...
Searching...
No Matches
baseList.h
1#ifndef BASELIST_H
2#define BASELIST_H
3#include "serial.h"
4
5namespace original {
6 template <typename TYPE>
7 class baseList : public serial<TYPE>{
8 public:
9 virtual void add(const TYPE& e);
10 virtual TYPE remove(const TYPE& e);
11 virtual void clear();
12 virtual void push(int64_t index, const TYPE& e) = 0;
13 virtual TYPE pop(int64_t index) = 0;
14 virtual void pushBegin(const TYPE& e) = 0;
15 virtual TYPE popBegin() = 0;
16 virtual void pushEnd(const TYPE& e) = 0;
17 virtual TYPE popEnd() = 0;
18 };
19}
20
21 template <typename TYPE>
22 auto original::baseList<TYPE>::add(const TYPE &e) -> void
23 {
24 this->pushEnd(e);
25 }
26
27 template <typename TYPE>
28 auto original::baseList<TYPE>::remove(const TYPE& e) -> TYPE
29 {
30 const int64_t index = this->indexOf(e);
31 return this->pop(index);
32 }
33
34 template<typename TYPE>
35 auto original::baseList<TYPE>::clear() -> void {
36 while (!this->empty()) {
37 this->popEnd();
38 }
39 }
40
41#endif //BASELIST_H
Definition baseList.h:7
Definition serial.h:8