List.h 610 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. #ifndef LIST_H
  2. #define LIST_H
  3. #include <array>
  4. #include "Types.h"
  5. template<typename T, uint N>
  6. class List final {
  7. public:
  8. void add(const T& t) {
  9. if(index >= N) {
  10. return;
  11. }
  12. array[index++] = t;
  13. }
  14. void clear() {
  15. index = 0;
  16. }
  17. bool contains(const T& t) const {
  18. for(uint i = 0; i < index; i++) {
  19. if(t == array[i]) {
  20. return true;
  21. }
  22. }
  23. return false;
  24. }
  25. bool isEmpty() const {
  26. return index == 0;
  27. }
  28. private:
  29. uint index = 0;
  30. std::array<T, N> array;
  31. };
  32. #endif