mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 19:57:44 +00:00
AK: Get rid of ConstVectorIterator.
We can achieve the same with just a VectorIterator<const Vector, const T>.
This commit is contained in:
parent
ebe108efa6
commit
50700c107f
5 changed files with 54 additions and 42 deletions
41
AK/Vector.h
41
AK/Vector.h
|
@ -51,45 +51,6 @@ private:
|
|||
int m_index { 0 };
|
||||
};
|
||||
|
||||
template<typename VectorType, typename ElementType>
|
||||
class ConstVectorIterator {
|
||||
public:
|
||||
bool operator!=(const ConstVectorIterator& other) { return m_index != other.m_index; }
|
||||
bool operator==(const ConstVectorIterator& other) { return m_index == other.m_index; }
|
||||
bool operator<(const ConstVectorIterator& other) { return m_index < other.m_index; }
|
||||
bool operator>(const ConstVectorIterator& other) { return m_index > other.m_index; }
|
||||
bool operator>=(const ConstVectorIterator& other) { return m_index >= other.m_index; }
|
||||
ConstVectorIterator& operator++()
|
||||
{
|
||||
++m_index;
|
||||
return *this;
|
||||
}
|
||||
ConstVectorIterator& operator--()
|
||||
{
|
||||
--m_index;
|
||||
return *this;
|
||||
}
|
||||
ConstVectorIterator operator-(int value) { return { m_vector, m_index - value }; }
|
||||
ConstVectorIterator operator+(int value) { return { m_vector, m_index + value }; }
|
||||
ConstVectorIterator& operator=(const ConstVectorIterator& other)
|
||||
{
|
||||
m_index = other.m_index;
|
||||
return *this;
|
||||
}
|
||||
const ElementType& operator*() const { return m_vector[m_index]; }
|
||||
int operator-(const ConstVectorIterator& other) { return m_index - other.m_index; }
|
||||
|
||||
private:
|
||||
friend VectorType;
|
||||
ConstVectorIterator(const VectorType& vector, const int index)
|
||||
: m_vector(vector)
|
||||
, m_index(index)
|
||||
{
|
||||
}
|
||||
const VectorType& m_vector;
|
||||
int m_index { 0 };
|
||||
};
|
||||
|
||||
template<typename T, int inline_capacity = 0>
|
||||
class Vector {
|
||||
public:
|
||||
|
@ -416,7 +377,7 @@ public:
|
|||
Iterator begin() { return Iterator(*this, 0); }
|
||||
Iterator end() { return Iterator(*this, size()); }
|
||||
|
||||
using ConstIterator = ConstVectorIterator<Vector, T>;
|
||||
using ConstIterator = VectorIterator<const Vector, const T>;
|
||||
ConstIterator begin() const { return ConstIterator(*this, 0); }
|
||||
ConstIterator end() const { return ConstIterator(*this, size()); }
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue