Efficient (compressed-row) storage for a sequence of sequences of integers. More...
Public Member Functions | |
| template<class InputIt> | |
| void | add_row (InputIt first, InputIt last) |
Append onto the crs (via data copy) a row of values pointed to by a beginning and an ending iterator. | |
| template<typename Range> | |
| void | add_row (Range const &it) |
Append onto the crs (via data copy) a row of values acquired by traversing a range. | |
| template<class U> | |
| void | add_row (std::initializer_list< U > init) |
Append onto the crs (via data copy) a row of values. | |
| void | clear () |
Discard all data (offsets and values). | |
| crs ()=default | |
| Create an empty sequence of sequences. | |
| size_type | size () const |
| Return the number of rows. | |
| util::span< const value_type > | operator[] (size_type i) const |
| Return a row. | |
| util::span< value_type > | operator[] (size_type i) |
| Return a row. | |
Public Attributes | |
| util::offsets | offsets |
The rows in values. | |
| std::vector< value_type > | values |
| The concatenated rows. | |
Efficient (compressed-row) storage for a sequence of sequences of integers.
There are no constraints on the size or contents of either the sequences or sequences of sequences: sequences can be different sizes, can have overlapping values, can include values in any order, and can hold duplicate values.
This type is a random-access range of span objects. Because the offsets and values fields must be kept in sync they are best treated as read-only. Use the add_row methods to modify those fields in a consistent manner.
|
default |
Create an empty sequence of sequences.
| void add_row | ( | InputIt | first, |
| InputIt | last ) |
Append onto the crs (via data copy) a row of values pointed to by a beginning and an ending iterator.
| void add_row | ( | std::initializer_list< U > | init | ) |
Append onto the crs (via data copy) a row of values.
| void add_row | ( | Range const & | it | ) |
Append onto the crs (via data copy) a row of values acquired by traversing a range.
| size_type size | ( | ) | const |
Return the number of rows.
| void clear | ( | ) |
Discard all data (offsets and values).
| util::span< const value_type > operator[] | ( | size_type | i | ) | const |
Return a row.
values | util::span< value_type > operator[] | ( | size_type | i | ) |
Return a row.
values | util::offsets offsets |
The rows in values.
| std::vector<value_type> values |
The concatenated rows.