|
mdds
|
#include <collection.hpp>
Public Types | |
| typedef _MtvT | mtv_type |
| typedef mtv_type::size_type | size_type |
| typedef detail::side_iterator< mtv_type > | const_iterator |
| collection range. | |
Public Member Functions | |
| template<typename _T> | |
| collection (const _T &begin, const _T &end) | |
| const_iterator | begin () const |
| const_iterator | end () const |
| size_type | size () const |
| void | swap (collection &other) |
| void | set_collection_range (size_type start, size_type size) |
| void | set_element_range (size_type start, size_type size) |
Special-purpose collection of multiple multi_type_vector instances to allow them to be traversed "sideways" i.e. orthogonal to the direction of the vector instances. All involved multi_type_vector instances must be of the same type and length.
| mdds::mtv::collection< _MtvT >::collection | ( | const _T & | begin, |
| const _T & | end ) |
Constructor that takes the start and end iterators of the multi_type_vector instances to reference in the collection.
| begin | iterator that references the first multi_type_vector instance to place in the collection. |
| end | iterator that references the position past the last multi_type_vector instance to place in the collection. |
| const_iterator mdds::mtv::collection< _MtvT >::begin | ( | ) | const |
Return an iterator that references the first element in the collection.
| const_iterator mdds::mtv::collection< _MtvT >::end | ( | ) | const |
Return an iterator that references the position past the last element in the collection.
| void mdds::mtv::collection< _MtvT >::set_collection_range | ( | size_type | start, |
| size_type | size ) |
Set the sub-range of the collection to iterate through.
For instance, if the collection consists of 100 multi_type_vector instances, and you want to iterate through only 50 of them starting from the second instance, you set the start index to 1 (as it's 0-based), and the size to 50.
| start | 0-based index of the first multi_type_vector instance to iterate through. |
| size | length of the collection range i.e. the number of vector instances to iterate through starting from the specified first vector instance. |
| void mdds::mtv::collection< _MtvT >::set_element_range | ( | size_type | start, |
| size_type | size ) |
Set the sub element range to iterate through. This limits the element range in each multi_type_vector instance to iterate through. The direction of the element range is orthogonal to the direction of the collection range.
For instance, if the collection consists of multiple multi_type_vector instances all of which have a length of 50, and you only wish to iterate from the 3rd element through the 10th element in each vector instance, then you set the start index to 2 and the size to 8.
| start | 0-based index of the starting element position. |
| size | length of the element range to iterate through starting from the specified start element position. |
| size_type mdds::mtv::collection< _MtvT >::size | ( | ) | const |
Return the length of the vector instances stored in the collection. This will be equivalent of the length of each multi_type_vector instance, since all stored instances have the same length.
| void mdds::mtv::collection< _MtvT >::swap | ( | collection< _MtvT > & | other | ) |
Swap the entire collection with another collection instance.
| other | another collection instance to swap contents with. |