Range class, with range and data. More...
#include <sparse_vector.h>
Public Types | |
| typedef range_t< size_type > | base_t |
| base class More... | |
| typedef vector_t::iterator | iterator |
| typedef vector_t::const_iterator | const_iterator |
Public Types inherited from lar::range_t< size_type > | |
| typedef size_type | size_type |
| type for the indices in the range More... | |
| typedef std::ptrdiff_t | difference_type |
| type for index difference More... | |
| typedef bool(* | less_int_range) (size_type, const range_t &b) |
| Helper type to be used for binary searches. More... | |
Public Member Functions | |
| datarange_t () | |
| Default constructor: an empty range. More... | |
| datarange_t (const base_t &range) | |
| Constructor: range initialized with 0. More... | |
| template<typename ITER > | |
| datarange_t (size_type offset, ITER first, ITER last) | |
| Constructor: offset and data. More... | |
| datarange_t (size_type offset, vector_t &&data) | |
| Constructor: offset and data as a vector (which will be used directly) More... | |
| template<typename ITER > | |
| datarange_t & | extend (size_type index, ITER first, ITER last) |
| Appends the specified elements to this range. More... | |
| void | move_head (size_type to_index, value_type def_value=value_zero) |
| Moves the begin of this range. More... | |
| void | move_tail (size_type to_index, value_type def_value=value_zero) |
| Moves the end of this range. More... | |
| template<typename Stream > | |
| void | dump (Stream &&out) const |
| Dumps the content of this data range into a stream. More... | |
| template<typename ITER > | |
| lar::sparse_vector< T >::datarange_t & | extend (size_type index, ITER first, ITER last) |
| iterator | get_iterator (size_type index) |
| Returns an iterator to the specified absolute value (no check!) More... | |
| const_iterator | get_iterator (size_type index) const |
| const_iterator | get_const_iterator (size_type index) const |
| iterator | begin () |
| begin and end iterators More... | |
| iterator | end () |
| const_iterator | begin () const |
| const_iterator | end () const |
| const_iterator | cbegin () const |
| const_iterator | cend () const |
| void | resize (size_t new_size) |
| Resizes the range (optionally filling the new elements with def_value) More... | |
| void | resize (size_t new_size, value_type def_value) |
| value_type & | operator[] (size_type index) |
| Returns the value at the specified absolute index. More... | |
| const value_type & | operator[] (size_type index) const |
| const vector_t & | data () const |
| Return the vector of data values. More... | |
Public Member Functions inherited from lar::range_t< size_type > | |
| range_t () | |
| Default constructor: empty range. More... | |
| range_t (size_type from, size_type to) | |
| Constructor from first and last index. More... | |
| void | set (size_type from, size_type to) |
| Sets the borders of the range. More... | |
| size_type | begin_index () const |
| Returns the first absolute index included in the range. More... | |
| size_type | end_index () const |
| Returns the first absolute index not included in the range. More... | |
| size_type | relative_index (size_type index) const |
| Returns the position within the range of the absolute index specified. More... | |
| size_type | size () const |
| Returns the size of the range. More... | |
| void | resize (size_type new_size) |
| Moves the end of the range to fit the specified size. More... | |
| void | move_head (difference_type shift) |
| Moves the begin of the range by the specified amount. More... | |
| void | move_tail (difference_type shift) |
| Moves the end of the range by the specified amount. More... | |
| bool | empty () const |
| Returns whether the range is empty. More... | |
| bool | includes (size_type index) const |
| Returns whether the specified absolute index is included in this range. More... | |
| bool | includes (const range_t &r) const |
| Returns whether the specified range is completely included in this one. More... | |
| bool | overlap (const range_t &r) const |
| Returns if this and the specified range overlap. More... | |
| bool | separate (const range_t &r) const |
| Returns if there are elements in between this and the specified range. More... | |
| bool | borders (size_type index) const |
| Returns whether an index is within or immediately after this range. More... | |
| bool | operator== (const range_t &as) const |
| Returns whether the specified range has our same offset and size. More... | |
| bool | is_valid () const |
| Returns whether the range is valid (that is, non-negative size) More... | |
| bool | operator< (const range_t &than) const |
| Sort: this range is smaller if its offset is smaller. More... | |
Protected Member Functions | |
| void | fit_size_from_data () |
Protected Attributes | |
| vector_t | values |
| data in the range More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from lar::range_t< size_type > | |
| static bool | less (const range_t &a, const range_t &b) |
| Returns if a is "less" than b. More... | |
| static bool | less (const range_t &a, size_type b) |
| static bool | less (size_type a, const range_t &b) |
Public Attributes inherited from lar::range_t< size_type > | |
| size_type | offset |
| offset (absolute index) of the first element More... | |
| size_type | last |
| offset (absolute index) after the last element More... | |
Range class, with range and data.
Definition at line 1202 of file sparse_vector.h.
| typedef range_t<size_type> lar::sparse_vector< T >::datarange_t::base_t |
base class
Definition at line 1204 of file sparse_vector.h.
| typedef vector_t::const_iterator lar::sparse_vector< T >::datarange_t::const_iterator |
Definition at line 1207 of file sparse_vector.h.
| typedef vector_t::iterator lar::sparse_vector< T >::datarange_t::iterator |
Definition at line 1206 of file sparse_vector.h.
|
inline |
Default constructor: an empty range.
Definition at line 1210 of file sparse_vector.h.
|
inline |
Constructor: range initialized with 0.
Definition at line 1213 of file sparse_vector.h.
|
inline |
Constructor: offset and data.
Definition at line 1217 of file sparse_vector.h.
|
inline |
Constructor: offset and data as a vector (which will be used directly)
Definition at line 1223 of file sparse_vector.h.
|
inline |
begin and end iterators
Definition at line 1240 of file sparse_vector.h.
|
inline |
Definition at line 1242 of file sparse_vector.h.
|
inline |
Definition at line 1244 of file sparse_vector.h.
|
inline |
Definition at line 1245 of file sparse_vector.h.
|
inline |
Return the vector of data values.
Definition at line 1266 of file sparse_vector.h.
| void lar::sparse_vector< T >::datarange_t::dump | ( | Stream && | out | ) | const |
Dumps the content of this data range into a stream.
| Stream | type of stream to sent the dump to |
| out | stream to sent the dump to |
The output format is:
[min - max] (size) { values... }
Output is on a single line, which is not terminated.
Definition at line 2384 of file sparse_vector.h.
|
inline |
Definition at line 1241 of file sparse_vector.h.
|
inline |
Definition at line 1243 of file sparse_vector.h.
| datarange_t& lar::sparse_vector< T >::datarange_t::extend | ( | size_type | index, |
| ITER | first, | ||
| ITER | last | ||
| ) |
Appends the specified elements to this range.
| ITER | type of iterator of the range |
| index | the starting point |
| first | iterator to the first object to copy |
| last | iterator after the last object to copy |
| lar::sparse_vector<T>::datarange_t& lar::sparse_vector< T >::datarange_t::extend | ( | size_type | index, |
| ITER | first, | ||
| ITER | last | ||
| ) |
Definition at line 2352 of file sparse_vector.h.
|
inlineprotected |
Definition at line 1314 of file sparse_vector.h.
|
inline |
Definition at line 1234 of file sparse_vector.h.
|
inline |
Returns an iterator to the specified absolute value (no check!)
Definition at line 1230 of file sparse_vector.h.
|
inline |
Definition at line 1232 of file sparse_vector.h.
| void lar::sparse_vector< T >::datarange_t::move_head | ( | size_type | to_index, |
| value_type | def_value = value_zero |
||
| ) |
Moves the begin of this range.
| to_index | absolute index to move the head to |
| def_value | value to be inserted in case of expansion of the range |
Definition at line 2366 of file sparse_vector.h.
|
inline |
Moves the end of this range.
| to_index | absolute index to move the tail to |
| def_value | value to be inserted in case of expansion of the range |
Definition at line 1293 of file sparse_vector.h.
|
inline |
Returns the value at the specified absolute index.
Definition at line 1258 of file sparse_vector.h.
|
inline |
Definition at line 1260 of file sparse_vector.h.
|
inline |
Resizes the range (optionally filling the new elements with def_value)
Definition at line 1250 of file sparse_vector.h.
|
inline |
Definition at line 1252 of file sparse_vector.h.
|
protected |
data in the range
Definition at line 1312 of file sparse_vector.h.
1.8.11