18#ifndef itkVectorContainer_h
19#define itkVectorContainer_h
47template <
typename TElementIdentifier,
typename TElement>
50 ,
private std::vector<TElement>
91 const STLContainerType &
97 using STLContainerType::begin;
98 using STLContainerType::end;
99 using STLContainerType::rbegin;
100 using STLContainerType::rend;
101 using STLContainerType::cbegin;
102 using STLContainerType::cend;
103 using STLContainerType::crbegin;
104 using STLContainerType::crend;
106 using STLContainerType::size;
107 using STLContainerType::max_size;
108 using STLContainerType::resize;
109 using STLContainerType::capacity;
110 using STLContainerType::empty;
111 using STLContainerType::reserve;
112 using STLContainerType::shrink_to_fit;
114 using STLContainerType::operator[];
115 using STLContainerType::at;
116 using STLContainerType::front;
117 using STLContainerType::back;
119 using STLContainerType::assign;
120 using STLContainerType::push_back;
121 using STLContainerType::pop_back;
122 using STLContainerType::insert;
123 using STLContainerType::erase;
125 using STLContainerType::clear;
127 using STLContainerType::get_allocator;
129 using typename STLContainerType::reference;
130 using typename STLContainerType::const_reference;
131 using typename STLContainerType::iterator;
132 using typename STLContainerType::const_iterator;
133 using typename STLContainerType::size_type;
134 using typename STLContainerType::difference_type;
135 using typename STLContainerType::value_type;
136 using typename STLContainerType::allocator_type;
137 using typename STLContainerType::pointer;
138 using typename STLContainerType::const_pointer;
139 using typename STLContainerType::reverse_iterator;
140 using typename STLContainerType::const_reverse_iterator;
157 using pointer =
typename VectorIterator::pointer;
207 return m_Iter == r.
m_Iter;
215 return m_Iter == r.
m_Iter;
223 return (this->
operator-(r)) < 0;
281 using pointer =
typename VectorConstIterator::pointer;
282 using reference =
typename VectorConstIterator::reference;
349 return m_Iter == r.
m_Iter;
357 return m_Iter == r.
m_Iter;
365 return (this->
operator-(r) < 0);
559 template <
typename TInputIterator>
568#ifndef ITK_MANUAL_INSTANTIATION
569# include "itkVectorContainer.hxx"
Light weight base class for most itk classes.
Base class for most ITK classes.
bool operator>=(const ConstIterator &r) const
typename VectorConstIterator::value_type value_type
ConstIterator(size_type d, const VectorConstIterator &i)
const_reference Value() const
typename VectorConstIterator::pointer pointer
ConstIterator & operator*()
typename VectorConstIterator::iterator_category iterator_category
ConstIterator * operator->()
ConstIterator & operator--()
typename VectorConstIterator::difference_type difference_type
ConstIterator(const Iterator &r)
ConstIterator operator++(int)
ConstIterator operator--(int)
ConstIterator & operator+=(difference_type n)
VectorConstIterator m_Iter
bool operator>(const ConstIterator &r) const
ConstIterator & operator++()
bool operator==(const Iterator &r) const
ITK_UNEQUAL_OPERATOR_MEMBER_FUNCTION(ConstIterator)
bool operator==(const ConstIterator &r) const
difference_type operator-(const ConstIterator &r) const
ITK_UNEQUAL_OPERATOR_MEMBER_FUNCTION(Iterator)
ConstIterator & operator=(const Iterator &r)
typename VectorConstIterator::reference reference
ElementIdentifier Index() const
Iterator & operator+=(difference_type n)
typename VectorIterator::pointer pointer
typename VectorIterator::difference_type difference_type
Iterator(size_type d, const VectorIterator &i)
ITK_UNEQUAL_OPERATOR_MEMBER_FUNCTION(Iterator)
ITK_UNEQUAL_OPERATOR_MEMBER_FUNCTION(ConstIterator)
typename VectorIterator::reference reference
typename VectorIterator::iterator_category iterator_category
bool operator==(const Iterator &r) const
bool operator==(const ConstIterator &r) const
difference_type operator-(const Iterator &r) const
ElementIdentifier Index() const
bool operator>=(const Iterator &r) const
bool operator>(const Iterator &r) const
typename VectorIterator::value_type value_type
Define a front-end to the STL "vector" container that conforms to the IndexedContainerInterface.
void CreateIndex(ElementIdentifier)
void Reserve(ElementIdentifier)
typename VectorType::const_iterator VectorConstIterator
VectorContainer(const Self &r)
VectorType STLContainerType
void InsertElement(ElementIdentifier, Element)
VectorContainer(size_type n, const Element &x)
STLContainerType & CastToSTLContainer() noexcept
typename VectorType::iterator VectorIterator
Element GetElement(ElementIdentifier) const
reference ElementAt(ElementIdentifier)
void DeleteIndex(ElementIdentifier)
ConstIterator Begin() const
VectorContainer(size_type n)
const STLContainerType & CastToSTLConstContainer() const noexcept
VectorContainer()=default
TElementIdentifier ElementIdentifier
bool IndexExists(ElementIdentifier) const
VectorContainer(TInputIterator first, TInputIterator last)
reference CreateElementAt(ElementIdentifier)
const_reference ElementAt(ElementIdentifier) const
ConstIterator End() const
bool GetElementIfIndexExists(ElementIdentifier, Element *) const
void SetElement(ElementIdentifier, Element)
std::vector< Element > VectorType
ElementIdentifier Size() const
ImageBaseType::SpacingType VectorType
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
void swap(Array< T > &a, Array< T > &b)
bool operator<=(const Index< VDimension > &one, const Index< VDimension > &two)
bool operator<(const Index< VDimension > &one, const Index< VDimension > &two)