38 #ifndef __itkVectorDataContainer_h 39 #define __itkVectorDataContainer_h 41 #include "itkDataObject.h" 42 #include "itkObjectFactory.h" 73 typename TElementIdentifier,
78 public std::vector< TElement >
106 DataObject(), VectorType() {}
108 DataObject(), VectorType( n ) {}
110 DataObject(), VectorType( n, x ) {}
112 DataObject(), VectorType( r ) {}
113 template<
typename InputIterator >
115 DataObject(), VectorType( first, last ) {}
135 return dynamic_cast< STLContainerType &
>( *this );
142 return dynamic_cast< const STLContainerType &
>( *this );
157 Iterator( size_type d,
const VectorIterator & i ) : m_Pos( d ), m_Iter( i ) {}
160 Iterator * operator->() {
return this; }
161 Iterator & operator++() { ++m_Pos; ++m_Iter;
return *
this; }
162 Iterator operator++(
int ) {
Iterator temp( *
this ); ++m_Pos; ++m_Iter;
return temp; }
165 Iterator & operator--() { --m_Pos; --m_Iter;
return *
this; }
166 Iterator operator--(
int ) {
Iterator temp( *
this ); --m_Pos; --m_Iter;
return temp; }
174 ElementIdentifier Index(
void )
const {
return static_cast< ElementIdentifier
>( m_Pos ); }
177 Element & Value(
void )
const {
return *m_Iter; }
182 VectorIterator m_Iter;
193 ConstIterator( size_type d,
const VectorConstIterator & i ) : m_Pos( d ), m_Iter( i ) {}
198 ConstIterator & operator++() { ++m_Pos; ++m_Iter;
return *
this; }
202 ConstIterator & operator--() { --m_Pos; --m_Iter;
return *
this; }
205 ConstIterator & operator=(
const Iterator & r ) { m_Pos = r.m_Pos; m_Iter = r.m_Iter;
return *
this; }
213 ElementIdentifier Index(
void )
const {
return static_cast< ElementIdentifier
>( m_Pos ); }
216 const Element & Value(
void )
const {
return *m_Iter; }
221 VectorConstIterator m_Iter;
235 Element &
ElementAt( ElementIdentifier );
243 const Element &
ElementAt( ElementIdentifier )
const;
259 Element
GetElement( ElementIdentifier )
const;
265 void SetElement( ElementIdentifier, Element );
324 unsigned long Size(
void )
const;
335 void Reserve( ElementIdentifier );
354 #ifndef ITK_MANUAL_INSTANTIATION 355 #include "itkVectorDataContainer.hxx" 358 #endif // end __itkVectorDataContainer_h VectorDataContainer(size_type n)
ConstIterator Begin(void) const
ConstIterator End(void) const
VectorDataContainer(const Self &r)
bool GetElementIfIndexExists(ElementIdentifier, Element *) const
bool IndexExists(ElementIdentifier) const
void DeleteIndex(ElementIdentifier)
Element & CreateElementAt(ElementIdentifier)
__host__ __device__ void operator-=(int2 &a, int2 b)
SmartPointer< const Self > ConstPointer
VectorDataContainer(size_type n, const Element &x)
friend class ConstIterator
STLContainerType & CastToSTLContainer()
Define a front-end to the STL "vector" container that conforms to the IndexedContainerInterface.
__host__ __device__ int2 operator*(int2 a, int2 b)
void CreateIndex(ElementIdentifier)
void SetElement(ElementIdentifier, Element)
const STLContainerType & CastToSTLConstContainer() const
std::vector< Element > VectorType
VectorType::size_type size_type
SmartPointer< Self > Pointer
void InsertElement(ElementIdentifier, Element)
bool ITKOpenCL_EXPORT operator==(const OpenCLCommandQueue &lhs, const OpenCLCommandQueue &rhs)
Element GetElement(ElementIdentifier) const
VectorDataContainer(InputIterator first, InputIterator last)
bool ITKOpenCL_EXPORT operator!=(const OpenCLCommandQueue &lhs, const OpenCLCommandQueue &rhs)
unsigned long Size(void) const
Element & ElementAt(ElementIdentifier)
__host__ __device__ void operator+=(int2 &a, int2 b)
void Reserve(ElementIdentifier)
VectorType::iterator VectorIterator
VectorType::const_iterator VectorConstIterator
TElementIdentifier ElementIdentifier
VectorType STLContainerType