diff options
author | Neil <nyamatongwe@gmail.com> | 2019-12-02 08:34:47 +1100 |
---|---|---|
committer | Neil <nyamatongwe@gmail.com> | 2019-12-02 08:34:47 +1100 |
commit | 8922ca5662974913ef0ebc93d5d029d281505a32 (patch) | |
tree | d04ec8635fcfe32ec071567867ad54dff6429c6c /src/SparseVector.h | |
parent | da8c1844da6e593644f6ae056560553bb409b354 (diff) | |
download | scintilla-mirror-8922ca5662974913ef0ebc93d5d029d281505a32.tar.gz |
Add SparseVector::IndexAfter for efficiently finding elements in a range.
Diffstat (limited to 'src/SparseVector.h')
-rw-r--r-- | src/SparseVector.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/SparseVector.h b/src/SparseVector.h index e4e0e3f69..3fa1ac95b 100644 --- a/src/SparseVector.h +++ b/src/SparseVector.h @@ -154,6 +154,13 @@ public: starts->InsertText(partition, -1); Check(); } + Sci::Position IndexAfter(Sci::Position position) const noexcept { + assert(position < Length()); + if (position < 0) + return 0; + const Sci::Position partition = starts->PartitionFromPosition(position); + return partition + 1; + } void Check() const { #ifdef CHECK_CORRECTNESS starts->Check(); |