sofa::helper::vector< T, Alloc > Class Template Reference

Same as std::vector, + range checking on operator[ ]. More...

#include <vector.h>

Inheritance diagram for sofa::helper::vector< T, Alloc >:

Inheritance graph
[legend]
Collaboration diagram for sofa::helper::vector< T, Alloc >:

Collaboration graph
[legend]

Public Types

typedef std::vector< T, Alloc >
::size_type 
size_type
 size_type
typedef std::vector< T, Alloc >
::reference 
reference
 reference to a value (read-write)
typedef std::vector< T, Alloc >
::const_reference 
const_reference
 const reference to a value (read only)

Public Member Functions

 vector ()
 Basic onstructor.
 vector (size_type n, const T &value)
 Constructor.
 vector (int n, const T &value)
 Constructor.
 vector (long n, const T &value)
 Constructor.
 vector (size_type n)
 Constructor.
 vector (const std::vector< T, Alloc > &x)
 Constructor.
vector< T, Alloc > & operator= (const std::vector< T, Alloc > &x)
 Constructor.
 vector (typename vector< T, Alloc >::const_iterator first, typename vector< T, Alloc >::const_iterator last)
 Constructor.
reference operator[] (size_type n)
 Read/write random access.
const_reference operator[] (size_type n) const
 Read-only random access.
std::ostream & write (std::ostream &os) const
std::istream & read (std::istream &in)
void fill (const T &value)
 Sets every element to 'value'.
template<>
std::istream & read (std::istream &in)
template<>
std::istream & read (std::istream &in)

Friends

std::ostream & operator<< (std::ostream &os, const vector< T, Alloc > &vec)
 Output stream.
std::istream & operator>> (std::istream &in, vector< T, Alloc > &vec)
 Input stream.

Detailed Description

template<class T, class Alloc = std::allocator<T>>
class sofa::helper::vector< T, Alloc >

Same as std::vector, + range checking on operator[ ].

Range checking can be turned of using compile option -DNDEBUG

Author:
Francois Faure, 1999

Definition at line 54 of file vector.h.


Member Typedef Documentation

template<class T , class Alloc = std::allocator<T>>
typedef std::vector<T,Alloc>::const_reference sofa::helper::vector< T, Alloc >::const_reference

const reference to a value (read only)

Reimplemented in sofa::component::topology::EdgeData< T, Alloc >, sofa::component::topology::HexahedronData< T, Alloc >, sofa::component::topology::PointData< T, Alloc >, sofa::component::topology::QuadData< T, Alloc >, sofa::component::topology::TetrahedronData< T, Alloc >, sofa::component::topology::TriangleData< T, Alloc >, sofa::component::topology::EdgeData< sofa::component::forcefield::BeamFEMForceField::BeamInfo >, sofa::component::topology::EdgeData< sofa::component::forcefield::SpringEdgeDataForceField< DataTypes >::Spring >, sofa::component::topology::EdgeData< sofa::component::forcefield::QuadularBendingSprings::EdgeInformation >, sofa::component::topology::EdgeData< sofa::component::forcefield::SpringEdgeDataForceField::Spring >, sofa::component::topology::EdgeData< sofa::component::forcefield::TetrahedralTensorMassForceField::EdgeRestInformation >, sofa::component::topology::EdgeData< sofa::component::forcefield::TriangularQuadraticSpringsForceField::EdgeRestInformation >, sofa::component::topology::EdgeData< sofa::component::forcefield::TriangularBiquadraticSpringsForceField::EdgeRestInformation >, sofa::component::topology::EdgeData< sofa::component::forcefield::VectorSpringForceField::Spring >, sofa::component::topology::EdgeData< sofa::component::forcefield::TriangularTensorMassForceField::EdgeRestInformation >, sofa::component::topology::EdgeData< sofa::component::forcefield::TriangularBendingSprings::EdgeInformation >, sofa::component::topology::EdgeData< sofa::component::forcefield::TriangularFEMForceField::EdgeInformation >, sofa::component::topology::HexahedronData< sofa::component::mapping::BarycentricMapperHexahedronSetTopology::_BaseAndCenter >, sofa::component::topology::HexahedronData< sofa::component::forcefield::HexahedralFEMForceField::HexahedronInformation >, sofa::component::topology::PointData< sofa::component::forcefield::TriangularFEMForceField::VertexInformation >, sofa::component::topology::PointData< Inherit::MappingData2D >, sofa::component::topology::PointData< Inherit::MappingData3D >, sofa::component::topology::PointData< Inherit::MappingData1D >, sofa::component::topology::TetrahedronData< sofa::component::forcefield::TetrahedralCorotationalFEMForceField::TetrahedronInformation >, sofa::component::topology::TriangleData< sofa::component::forcefield::TriangularQuadraticSpringsForceField::TriangleRestInformation >, sofa::component::topology::TriangleData< sofa::component::forcefield::TriangularBiquadraticSpringsForceField::TriangleRestInformation >, and sofa::component::topology::TriangleData< sofa::component::forcefield::TriangularFEMForceField::TriangleInformation >.

Definition at line 63 of file vector.h.

template<class T , class Alloc = std::allocator<T>>
typedef std::vector<T,Alloc>::reference sofa::helper::vector< T, Alloc >::reference

reference to a value (read-write)

Reimplemented in sofa::component::topology::EdgeData< T, Alloc >, sofa::component::topology::HexahedronData< T, Alloc >, sofa::component::topology::PointData< T, Alloc >, sofa::component::topology::QuadData< T, Alloc >, sofa::component::topology::TetrahedronData< T, Alloc >, sofa::component::topology::TriangleData< T, Alloc >, sofa::component::topology::EdgeData< sofa::component::forcefield::BeamFEMForceField::BeamInfo >, sofa::component::topology::EdgeData< sofa::component::forcefield::SpringEdgeDataForceField< DataTypes >::Spring >, sofa::component::topology::EdgeData< sofa::component::forcefield::QuadularBendingSprings::EdgeInformation >, sofa::component::topology::EdgeData< sofa::component::forcefield::SpringEdgeDataForceField::Spring >, sofa::component::topology::EdgeData< sofa::component::forcefield::TetrahedralTensorMassForceField::EdgeRestInformation >, sofa::component::topology::EdgeData< sofa::component::forcefield::TriangularQuadraticSpringsForceField::EdgeRestInformation >, sofa::component::topology::EdgeData< sofa::component::forcefield::TriangularBiquadraticSpringsForceField::EdgeRestInformation >, sofa::component::topology::EdgeData< sofa::component::forcefield::VectorSpringForceField::Spring >, sofa::component::topology::EdgeData< sofa::component::forcefield::TriangularTensorMassForceField::EdgeRestInformation >, sofa::component::topology::EdgeData< sofa::component::forcefield::TriangularBendingSprings::EdgeInformation >, sofa::component::topology::EdgeData< sofa::component::forcefield::TriangularFEMForceField::EdgeInformation >, sofa::component::topology::HexahedronData< sofa::component::mapping::BarycentricMapperHexahedronSetTopology::_BaseAndCenter >, sofa::component::topology::HexahedronData< sofa::component::forcefield::HexahedralFEMForceField::HexahedronInformation >, sofa::component::topology::PointData< sofa::component::forcefield::TriangularFEMForceField::VertexInformation >, sofa::component::topology::PointData< Inherit::MappingData2D >, sofa::component::topology::PointData< Inherit::MappingData3D >, sofa::component::topology::PointData< Inherit::MappingData1D >, sofa::component::topology::TetrahedronData< sofa::component::forcefield::TetrahedralCorotationalFEMForceField::TetrahedronInformation >, sofa::component::topology::TriangleData< sofa::component::forcefield::TriangularQuadraticSpringsForceField::TriangleRestInformation >, sofa::component::topology::TriangleData< sofa::component::forcefield::TriangularBiquadraticSpringsForceField::TriangleRestInformation >, and sofa::component::topology::TriangleData< sofa::component::forcefield::TriangularFEMForceField::TriangleInformation >.

Definition at line 61 of file vector.h.

template<class T , class Alloc = std::allocator<T>>
typedef std::vector<T,Alloc>::size_type sofa::helper::vector< T, Alloc >::size_type

size_type

Reimplemented in sofa::component::topology::EdgeData< T, Alloc >, sofa::component::topology::HexahedronData< T, Alloc >, sofa::component::topology::PointData< T, Alloc >, sofa::component::topology::QuadData< T, Alloc >, sofa::component::topology::TetrahedronData< T, Alloc >, sofa::component::topology::TriangleData< T, Alloc >, sofa::component::topology::EdgeData< sofa::component::forcefield::BeamFEMForceField::BeamInfo >, sofa::component::topology::EdgeData< sofa::component::forcefield::SpringEdgeDataForceField< DataTypes >::Spring >, sofa::component::topology::EdgeData< sofa::component::forcefield::QuadularBendingSprings::EdgeInformation >, sofa::component::topology::EdgeData< sofa::component::forcefield::SpringEdgeDataForceField::Spring >, sofa::component::topology::EdgeData< sofa::component::forcefield::TetrahedralTensorMassForceField::EdgeRestInformation >, sofa::component::topology::EdgeData< sofa::component::forcefield::TriangularQuadraticSpringsForceField::EdgeRestInformation >, sofa::component::topology::EdgeData< sofa::component::forcefield::TriangularBiquadraticSpringsForceField::EdgeRestInformation >, sofa::component::topology::EdgeData< sofa::component::forcefield::VectorSpringForceField::Spring >, sofa::component::topology::EdgeData< sofa::component::forcefield::TriangularTensorMassForceField::EdgeRestInformation >, sofa::component::topology::EdgeData< sofa::component::forcefield::TriangularBendingSprings::EdgeInformation >, sofa::component::topology::EdgeData< sofa::component::forcefield::TriangularFEMForceField::EdgeInformation >, sofa::component::topology::HexahedronData< sofa::component::mapping::BarycentricMapperHexahedronSetTopology::_BaseAndCenter >, sofa::component::topology::HexahedronData< sofa::component::forcefield::HexahedralFEMForceField::HexahedronInformation >, sofa::component::topology::PointData< sofa::component::forcefield::TriangularFEMForceField::VertexInformation >, sofa::component::topology::PointData< Inherit::MappingData2D >, sofa::component::topology::PointData< Inherit::MappingData3D >, sofa::component::topology::PointData< Inherit::MappingData1D >, sofa::component::topology::TetrahedronData< sofa::component::forcefield::TetrahedralCorotationalFEMForceField::TetrahedronInformation >, sofa::component::topology::TriangleData< sofa::component::forcefield::TriangularQuadraticSpringsForceField::TriangleRestInformation >, sofa::component::topology::TriangleData< sofa::component::forcefield::TriangularBiquadraticSpringsForceField::TriangleRestInformation >, and sofa::component::topology::TriangleData< sofa::component::forcefield::TriangularFEMForceField::TriangleInformation >.

Definition at line 59 of file vector.h.


Constructor & Destructor Documentation

template<class T , class Alloc = std::allocator<T>>
sofa::helper::vector< T, Alloc >::vector (  )  [inline]

Basic onstructor.

Definition at line 66 of file vector.h.

template<class T , class Alloc = std::allocator<T>>
sofa::helper::vector< T, Alloc >::vector ( size_type  n,
const T &  value 
) [inline]

Constructor.

Definition at line 68 of file vector.h.

template<class T , class Alloc = std::allocator<T>>
sofa::helper::vector< T, Alloc >::vector ( int  n,
const T &  value 
) [inline]

Constructor.

Definition at line 70 of file vector.h.

template<class T , class Alloc = std::allocator<T>>
sofa::helper::vector< T, Alloc >::vector ( long  n,
const T &  value 
) [inline]

Constructor.

Definition at line 72 of file vector.h.

template<class T , class Alloc = std::allocator<T>>
sofa::helper::vector< T, Alloc >::vector ( size_type  n  )  [inline, explicit]

Constructor.

Definition at line 74 of file vector.h.

template<class T , class Alloc = std::allocator<T>>
sofa::helper::vector< T, Alloc >::vector ( const std::vector< T, Alloc > &  x  )  [inline]

Constructor.

Definition at line 76 of file vector.h.

template<class T , class Alloc = std::allocator<T>>
sofa::helper::vector< T, Alloc >::vector ( typename vector< T, Alloc >::const_iterator  first,
typename vector< T, Alloc >::const_iterator  last 
) [inline]

Constructor.

Definition at line 90 of file vector.h.


Member Function Documentation

template<class T , class Alloc = std::allocator<T>>
void sofa::helper::vector< T, Alloc >::fill ( const T &  value  )  [inline]

template<class T , class Alloc = std::allocator<T>>
vector<T, Alloc>& sofa::helper::vector< T, Alloc >::operator= ( const std::vector< T, Alloc > &  x  )  [inline]

template<class T , class Alloc = std::allocator<T>>
const_reference sofa::helper::vector< T, Alloc >::operator[] ( size_type  n  )  const [inline]

Read-only random access.

Definition at line 103 of file vector.h.

template<class T , class Alloc = std::allocator<T>>
reference sofa::helper::vector< T, Alloc >::operator[] ( size_type  n  )  [inline]

Read/write random access.

Definition at line 95 of file vector.h.

template<>
std::istream & sofa::helper::vector< unsigned int, std::allocator< unsigned int > >::read ( std::istream &  in  )  [inline]

Definition at line 211 of file vector.h.

References sofa::component::clear().

template<>
std::istream & sofa::helper::vector< int, std::allocator< int > >::read ( std::istream &  in  )  [inline]

Definition at line 153 of file vector.h.

References sofa::component::clear().

template<class T , class Alloc = std::allocator<T>>
std::istream& sofa::helper::vector< T, Alloc >::read ( std::istream &  in  )  [inline]

Definition at line 119 of file vector.h.

Referenced by sofa::component::topology::operator>>().

template<class T , class Alloc = std::allocator<T>>
std::ostream& sofa::helper::vector< T, Alloc >::write ( std::ostream &  os  )  const [inline]

Definition at line 110 of file vector.h.

Referenced by sofa::component::topology::operator<<().


Friends And Related Function Documentation

template<class T , class Alloc = std::allocator<T>>
std::ostream& operator<< ( std::ostream &  os,
const vector< T, Alloc > &  vec 
) [friend]

Output stream.

Definition at line 131 of file vector.h.

template<class T , class Alloc = std::allocator<T>>
std::istream& operator>> ( std::istream &  in,
vector< T, Alloc > &  vec 
) [friend]

Input stream.

Definition at line 137 of file vector.h.


The documentation for this class was generated from the following file:

Generated on Sun Nov 23 04:24:17 2008 for Sofa by  doxygen 1.5.7.1