Dune-Fufem 2.11-git
Loading...
Searching...
No Matches
indexedsliceiterator.hh
Go to the documentation of this file.
1// -*- tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
2// vi: set ts=8 sw=4 et sts=4:
3
4// SPDX-FileCopyrightText: Copyright © DUNE-FUFEM Project contributors, see file AUTHORS.md
5// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception OR LGPL-3.0-or-later
6
7#ifndef DUNE_FUFEM_INDEXED_SLICE_ITERATOR_HH
8#define DUNE_FUFEM_INDEXED_SLICE_ITERATOR_HH
9
11
12
27template<class BaseIterator, class Value>
29 public Dune::ForwardIteratorFacade<IndexedSliceIterator<BaseIterator, Value>,Value>
30{
32
33public:
35
37 index_(0),
38 itStride_(1),
40 {}
41
54 IndexedSliceIterator(const BaseIterator& it, size_type index, size_type itStride=1, size_type indexStride=1) :
55 it_(it),
56 itStride_(itStride),
58 indexStride_(indexStride)
59 {}
60
62 {
63 return *it_;
64 }
65
66 bool equals(const IndexedSliceIterator& other) const
67 {
68 if (itStride_==0)
69 return (index_ == other.index_);
70 else
71 return (it_ == other.it_);
72 }
73
74 void increment()
75 {
77 for(size_type i=0; i != itStride_; ++i)
78 ++it_;
79 }
80
88 {
89 return index_;
90 }
91
92protected:
93 BaseIterator it_;
97};
98
99#endif
An indexed iterator over a slice.
Definition indexedsliceiterator.hh:30
IndexedSliceIterator()
Definition indexedsliceiterator.hh:36
size_type indexStride_
Definition indexedsliceiterator.hh:96
size_type index_
Definition indexedsliceiterator.hh:95
IndexedSliceIterator(const BaseIterator &it, size_type index, size_type itStride=1, size_type indexStride=1)
Construct from value and index.
Definition indexedsliceiterator.hh:54
size_type index() const
Get index of iterator.
Definition indexedsliceiterator.hh:87
std::size_t size_type
Definition indexedsliceiterator.hh:34
void increment()
Definition indexedsliceiterator.hh:74
BaseIterator it_
Definition indexedsliceiterator.hh:93
Base::Reference dereference() const
Definition indexedsliceiterator.hh:61
size_type itStride_
Definition indexedsliceiterator.hh:94
bool equals(const IndexedSliceIterator &other) const
Definition indexedsliceiterator.hh:66