From e12f8f179666ed70d03c99039565ba63c45f7c7a Mon Sep 17 00:00:00 2001 From: Neil Date: Wed, 20 Jul 2022 11:19:40 +1000 Subject: Implement PositionNext to iterate. Simpler than IndexAfter for client code which is not interested in SparseVector indices. --- src/SparseVector.h | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'src/SparseVector.h') diff --git a/src/SparseVector.h b/src/SparseVector.h index 01d651f0d..ccee58df5 100644 --- a/src/SparseVector.h +++ b/src/SparseVector.h @@ -189,6 +189,13 @@ public: } Check(); } + Sci::Position PositionNext(Sci::Position start) const noexcept { + const Sci::Position element = ElementFromPosition(start); + if (element < Elements()) { + return PositionOfElement(element + 1); + } + return Length() + 1; // Out of bounds to terminate + } Sci::Position IndexAfter(Sci::Position position) const noexcept { assert(position < Length()); if (position < 0) -- cgit v1.2.3