|  | VPTissue Reference Manual
    | 
Container that stores objects "almost contiguously" and guarantees that pointers/iterators are not invalidated when the container grows. More...
#include <SegmentedVector.h>


| Public Types | |
| using | const_iterator = SVIterator< T, N > | 
| using | iterator = SVIterator< T, N, T *, T &, false > | 
| using | self_type = SegmentedVector< T, N > | 
| using | size_type = std::size_t | 
| using | value_type = T | 
| Public Member Functions | |
| SegmentedVector () | |
| Construct. | |
| SegmentedVector (const self_type &other) | |
| Copy constructor. | |
| SegmentedVector (self_type &&other) | |
| Move constructor. | |
| ~SegmentedVector () | |
| Destructor. | |
| T & | at (std::size_t pos) | 
| Access specified element with bounds checking. | |
| const T & | at (std::size_t pos) const | 
| Access specified element with bounds checking. | |
| T & | back () | 
| Access the last element. | |
| const T & | back () const | 
| Access the last element. | |
| iterator | begin () | 
| Returns an iterator to the beginning of the container. | |
| const_iterator | begin () const | 
| Returns a const_iterator to the beginning of the container. | |
| const_iterator | cbegin () const | 
| Returns a const_iterator to the beginning of the container. | |
| const_iterator | cend () const | 
| Returns a const_iterator to the end. | |
| void | clear () | 
| Clears the content. | |
| template<class... Args> | |
| T * | emplace_back (Args &&...args) | 
| Constructs element in-place at the end. | |
| bool | empty () const | 
| Checks whether container is empty. | |
| iterator | end () | 
| Returns an iterator to the end of the container. | |
| const_iterator | end () const | 
| Returns a const_iterator to the end of the container. | |
| std::size_t | get_block_count () const | 
| Returns number of currently allocated blocks. | |
| std::size_t | get_elements_per_block () const | 
| Returns number of elements block (template parameter 'N'). | |
| self_type & | operator= (const self_type &other) | 
| Copy assignment. | |
| self_type & | operator= (self_type &&other) | 
| Move assignment. | |
| T & | operator[] (size_t pos) | 
| Access specified element (no bounds checking). | |
| const T & | operator[] (size_t pos) const | 
| Access specified element (no bounds checking). | |
| void | pop_back () | 
| Removes the last element. | |
| T * | push_back (const T &obj) | 
| Adds element to end. | |
| T * | push_back (T &&obj) | 
| Adds element to end. | |
| std::size_t | size () const | 
| Returns the number of elements. | |
| Friends | |
| class | SVIterator< T, N > | 
| class | SVIterator< T, N, T *, T &, false > | 
Container that stores objects "almost contiguously" and guarantees that pointers/iterators are not invalidated when the container grows.
It combines vector properties (high data locality) with queue properties (can increase capacity without pointer/iterator invalidation). Actually, its implementation is much like a queue but with a limited interface e.g. no insertions. The reason for the SegmentedVector is that one cannot control the block size for std:queue (where it is small) and we need that control to make the block size flexible and rather large.
Template parameters: T type of elements stored in the container N block size i.e. number of elements per block
Definition at line 51 of file SegmentedVector.h.