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.