MCPcopy Create free account
hub / github.com/LemonOSProject/LemonOS / VectorIterator

Class VectorIterator

Kernel/include/vector.h:8–53  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

6template<typename T>
7class Vector{
8 class VectorIterator {
9 friend class Vector;
10 protected:
11 size_t pos = 0;
12 const Vector<T>& vector;
13 public:
14 VectorIterator(const Vector<T>& newVector) : vector(newVector) {};
15 VectorIterator(const VectorIterator& it) : vector(it.vector) { pos = it.pos; };
16
17 VectorIterator& operator++(){
18 pos++;
19 return *this;
20 }
21
22 VectorIterator& operator=(const VectorIterator& other){
23 VectorIterator(other.vector);
24
25 pos = other.pos;
26
27 return *this;
28 }
29
30 T& operator*() const{
31 return vector.data[pos];
32 }
33
34 T* operator->() const{
35 return &vector.data[pos];
36 }
37
38 friend bool operator==(const VectorIterator& l, const VectorIterator& r){
39 if(l.pos == r.pos){
40 return true;
41 } else {
42 return false;
43 }
44 }
45
46 friend bool operator!=(const VectorIterator& l, const VectorIterator& r){
47 if(l.pos != r.pos){
48 return true;
49 } else {
50 return false;
51 }
52 }
53 };
54private:
55 T* data = nullptr;
56 size_t count = 0;

Callers 2

beginMethod · 0.85
endMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected