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.   | |
| std::size_t | size () const | 
| Return the number of rows.   | |
| util::span< const util::gid > | operator[] (std::size_t i) const | 
| Return a row.   | |
| util::span< util::gid > | operator[] (std::size_t i) | 
| Return a row.   | |
Public Attributes | |
| util::offsets | offsets | 
The rows in values.   | |
| std::vector< util::gid > | 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. 
| std::size_t size | ( | ) | const | 
Return the number of rows.
| void clear | ( | ) | 
Discard all data (offsets and values). 
| util::span< const util::gid > operator[] | ( | std::size_t | i | ) | const | 
Return a row.
values | util::span< util::gid > operator[] | ( | std::size_t | i | ) | 
Return a row.
values The rows in values. 
| std::vector<util::gid> values | 
The concatenated rows.