Jpp
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Protected Attributes | Friends | List of all members
JTOOLS::JArray< 1, T > Class Template Reference

One dimensional array of template objects with fixed length. More...

#include <JArray.hh>

Inheritance diagram for JTOOLS::JArray< 1, T >:
JMATH::JMath< JArray< 1, T > > JLANG::JEquals< JArray< 1, T > >

Public Types

typedef T * pointer
 
typedef T * iterator
 
typedef std::reverse_iterator< const_iteratorconst_reverse_iterator
 
typedef std::reverse_iterator< iteratorreverse_iterator
 
typedef T & reference
 
typedef unsigned int size_type
 
typedef JLANG::JClass< T >::argument_type argument_type
 

Public Member Functions

 JArray ()
 Default constructor. More...
 
template<unsigned int M>
 JArray (const JArray< M, T > &array)
 Copy constructor. More...
 
template<unsigned int M>
 JArray (const JArray< M, const T > &array)
 Copy constructor. More...
 
 JArray (argument_type x)
 Initialise constructor. More...
 
 JArray (const T *p)
 Constructor. More...
 
 JArray (const JMultiKey< 1, T > &key)
 Constructor. More...
 
 JArray (const JMultiKey< 1, const T > &key)
 Constructor. More...
 
const_iterator begin () const
 get iterator to begin of data More...
 
const_iterator end () const
 get iterator to end of data More...
 
iterator begin ()
 get iterator to begin of data More...
 
iterator end ()
 get iterator to end of data More...
 
const_reverse_iterator rbegin () const
 get reverse iterator to begin of data More...
 
const_reverse_iterator rend () const
 get reverse iterator to begin of data More...
 
reverse_iterator rbegin ()
 get reverse iterator to begin of data More...
 
reverse_iterator rend ()
 get reverse iterator to end of data More...
 
const_reference operator[] (int index) const
 Get element at given index. More...
 
reference operator[] (int index)
 Get element at given index. More...
 
const_reference at (int index) const
 Get element at given index. More...
 
reference at (int index)
 Get element at given index. More...
 
const_pointer data () const
 Get pointer to data. More...
 
pointer data ()
 Get pointer to data. More...
 
JArraynegate ()
 Negate array. More...
 
JArrayadd (const JArray &array)
 Add array. More...
 
JArraysub (const JArray &array)
 Subtract array. More...
 
JArraymul (const double factor)
 Scale array. More...
 
JArraydiv (const double factor)
 Scale array. More...
 
bool equals (const JArray< N, T > &array) const
 Check equality. More...
 
JArray< 1, T > & mul (const JSecond_t &object)
 Multiply with object. More...
 

Static Public Member Functions

static size_type size ()
 Get size of data. More...
 

Public Attributes

const typedef T * const_pointer
 
const typedef T * const_iterator
 
const typedef T & const_reference
 

Static Public Attributes

static const unsigned int N = 1
 

Protected Attributes

buffer [1]
 

Friends

JReaderoperator>> (JReader &in, JArray &buffer)
 Read array from input. More...
 
JWriteroperator<< (JWriter &out, const JArray &buffer)
 Write array to output. More...
 

Detailed Description

template<class T>
class JTOOLS::JArray< 1, T >

One dimensional array of template objects with fixed length.

The internal data structure consists of a standard C-array.

Definition at line 503 of file JArray.hh.

Member Typedef Documentation

◆ pointer

template<class T >
typedef T* JTOOLS::JArray< 1, T >::pointer

Definition at line 512 of file JArray.hh.

◆ iterator

template<class T >
typedef T* JTOOLS::JArray< 1, T >::iterator

Definition at line 514 of file JArray.hh.

◆ const_reverse_iterator

template<class T >
typedef std::reverse_iterator<const_iterator> JTOOLS::JArray< 1, T >::const_reverse_iterator

Definition at line 515 of file JArray.hh.

◆ reverse_iterator

template<class T >
typedef std::reverse_iterator<iterator> JTOOLS::JArray< 1, T >::reverse_iterator

Definition at line 516 of file JArray.hh.

◆ reference

template<class T >
typedef T& JTOOLS::JArray< 1, T >::reference

Definition at line 517 of file JArray.hh.

◆ size_type

template<class T >
typedef unsigned int JTOOLS::JArray< 1, T >::size_type

Definition at line 519 of file JArray.hh.

◆ argument_type

template<class T >
typedef JLANG::JClass<T>::argument_type JTOOLS::JArray< 1, T >::argument_type

Definition at line 520 of file JArray.hh.

Constructor & Destructor Documentation

◆ JArray() [1/7]

template<class T >
JTOOLS::JArray< 1, T >::JArray ( )
inline

Default constructor.

Definition at line 526 of file JArray.hh.

527  {}

◆ JArray() [2/7]

template<class T >
template<unsigned int M>
JTOOLS::JArray< 1, T >::JArray ( const JArray< M, T > &  array)
inline

Copy constructor.

Parameters
arrayarray

Definition at line 536 of file JArray.hh.

537  {
538  buffer[0] = array[0];
539  }

◆ JArray() [3/7]

template<class T >
template<unsigned int M>
JTOOLS::JArray< 1, T >::JArray ( const JArray< M, const T > &  array)
inline

Copy constructor.

Parameters
arrayarray

Definition at line 548 of file JArray.hh.

549  {
550  buffer[0] = array[0];
551  }

◆ JArray() [4/7]

template<class T >
JTOOLS::JArray< 1, T >::JArray ( argument_type  x)
inline

Initialise constructor.

Parameters
xvalue;

Definition at line 559 of file JArray.hh.

560  {
561  buffer[0] = x;
562  }

◆ JArray() [5/7]

template<class T >
JTOOLS::JArray< 1, T >::JArray ( const T *  p)
inline

Constructor.

Parameters
ppointer to data

Definition at line 570 of file JArray.hh.

571  {
572  buffer[0] = p[0];
573  }

◆ JArray() [6/7]

template<class T >
JTOOLS::JArray< 1, T >::JArray ( const JMultiKey< 1, T > &  key)
inline

Constructor.

Parameters
keymulti-dimensional key

Definition at line 581 of file JArray.hh.

582  {
583  buffer[0] = key.first;
584  }

◆ JArray() [7/7]

template<class T >
JTOOLS::JArray< 1, T >::JArray ( const JMultiKey< 1, const T > &  key)
inline

Constructor.

Parameters
keymulti-dimensional key

Definition at line 592 of file JArray.hh.

593  {
594  buffer[0] = key.first;
595  }

Member Function Documentation

◆ begin() [1/2]

template<class T >
const_iterator JTOOLS::JArray< 1, T >::begin ( ) const
inline

get iterator to begin of data

Definition at line 598 of file JArray.hh.

◆ end() [1/2]

template<class T >
const_iterator JTOOLS::JArray< 1, T >::end ( ) const
inline

get iterator to end of data

Definition at line 599 of file JArray.hh.

◆ begin() [2/2]

template<class T >
iterator JTOOLS::JArray< 1, T >::begin ( )
inline

get iterator to begin of data

Definition at line 602 of file JArray.hh.

◆ end() [2/2]

template<class T >
iterator JTOOLS::JArray< 1, T >::end ( )
inline

get iterator to end of data

Definition at line 603 of file JArray.hh.

◆ rbegin() [1/2]

template<class T >
const_reverse_iterator JTOOLS::JArray< 1, T >::rbegin ( ) const
inline

get reverse iterator to begin of data

Definition at line 606 of file JArray.hh.

◆ rend() [1/2]

template<class T >
const_reverse_iterator JTOOLS::JArray< 1, T >::rend ( ) const
inline

get reverse iterator to begin of data

Definition at line 607 of file JArray.hh.

◆ rbegin() [2/2]

template<class T >
reverse_iterator JTOOLS::JArray< 1, T >::rbegin ( )
inline

get reverse iterator to begin of data

Definition at line 610 of file JArray.hh.

◆ rend() [2/2]

template<class T >
reverse_iterator JTOOLS::JArray< 1, T >::rend ( )
inline

get reverse iterator to end of data

Definition at line 611 of file JArray.hh.

◆ operator[]() [1/2]

template<class T >
const_reference JTOOLS::JArray< 1, T >::operator[] ( int  index) const
inline

Get element at given index.

Parameters
indexindex
Returns
element

Definition at line 620 of file JArray.hh.

621  {
622  return buffer[index];
623  }

◆ operator[]() [2/2]

template<class T >
reference JTOOLS::JArray< 1, T >::operator[] ( int  index)
inline

Get element at given index.

Parameters
indexindex
Returns
element

Definition at line 632 of file JArray.hh.

633  {
634  return buffer[index];
635  }

◆ at() [1/2]

template<class T >
const_reference JTOOLS::JArray< 1, T >::at ( int  index) const
inline

Get element at given index.

Parameters
indexindex
Returns
element at index

Definition at line 644 of file JArray.hh.

645  {
646  if (index >= 0 && index < N)
647  return buffer[index];
648  else
649  throw JIndexOutOfRange("JArray<>::at()");
650  }

◆ at() [2/2]

template<class T >
reference JTOOLS::JArray< 1, T >::at ( int  index)
inline

Get element at given index.

Parameters
indexindex
Returns
element at index

Definition at line 659 of file JArray.hh.

660  {
661  if (index >= 0 && index < N)
662  return buffer[index];
663  else
664  throw JIndexOutOfRange("JArray<>::at()");
665  }

◆ data() [1/2]

template<class T >
const_pointer JTOOLS::JArray< 1, T >::data ( ) const
inline

Get pointer to data.

Returns
pointer to data

Definition at line 673 of file JArray.hh.

674  {
675  return buffer;
676  }

◆ data() [2/2]

template<class T >
pointer JTOOLS::JArray< 1, T >::data ( )
inline

Get pointer to data.

Returns
pointer to data

Definition at line 684 of file JArray.hh.

685  {
686  return buffer;
687  }

◆ size()

template<class T >
static size_type JTOOLS::JArray< 1, T >::size ( )
inlinestatic

Get size of data.

Returns
size of data

Definition at line 695 of file JArray.hh.

696  {
697  return N;
698  }

◆ negate()

template<class T >
JArray& JTOOLS::JArray< 1, T >::negate ( )
inline

Negate array.

Returns
this array

Definition at line 706 of file JArray.hh.

707  {
708  buffer[0] = -buffer[0];
709 
710  return *this;
711  }

◆ add()

template<class T >
JArray& JTOOLS::JArray< 1, T >::add ( const JArray< 1, T > &  array)
inline

Add array.

Parameters
arrayarray
Returns
this array

Definition at line 720 of file JArray.hh.

721  {
722  buffer[0] += array[0];
723 
724  return *this;
725  }

◆ sub()

template<class T >
JArray& JTOOLS::JArray< 1, T >::sub ( const JArray< 1, T > &  array)
inline

Subtract array.

Parameters
arrayarray
Returns
this array

Definition at line 734 of file JArray.hh.

735  {
736  buffer[0] -= array[0];
737 
738  return *this;
739  }

◆ mul() [1/2]

template<class T >
JArray& JTOOLS::JArray< 1, T >::mul ( const double  factor)
inline

Scale array.

Parameters
factormultiplication factor
Returns
this array

Definition at line 748 of file JArray.hh.

749  {
750  buffer[0] *= factor;
751 
752  return *this;
753  }

◆ div()

template<class T >
JArray& JTOOLS::JArray< 1, T >::div ( const double  factor)
inline

Scale array.

Parameters
factordivision factor
Returns
this array

Definition at line 762 of file JArray.hh.

763  {
764  buffer[0] /= factor;
765 
766  return *this;
767  }

◆ equals()

template<class T >
bool JTOOLS::JArray< 1, T >::equals ( const JArray< N, T > &  array) const
inline

Check equality.

Parameters
arrayarray
Returns
true if arrays are equal; else false

Definition at line 776 of file JArray.hh.

777  {
778  return buffer[0] == array[0];
779  }

◆ mul() [2/2]

JArray< 1, T > & JMATH::JMath< JArray< 1, T > , JSecond_t >::mul ( const JSecond_t &  object)
inlineinherited

Multiply with object.

Parameters
objectobject
Returns
result object

Definition at line 273 of file JMath.hh.

274  {
275  return static_cast<JFirst_t&>(*this) = JCalculator<JFirst_t>::calculator.mul(static_cast<const JFirst_t&>(*this), object);
276  }

Friends And Related Function Documentation

◆ operator>>

template<class T >
JReader& operator>> ( JReader in,
JArray< 1, T > &  buffer 
)
friend

Read array from input.

Parameters
inreader
bufferarray
Returns
reader

Definition at line 789 of file JArray.hh.

790  {
791  return in >> buffer[0];
792  }

◆ operator<<

template<class T >
JWriter& operator<< ( JWriter out,
const JArray< 1, T > &  buffer 
)
friend

Write array to output.

Parameters
outwriter
bufferarray
Returns
writer

Definition at line 802 of file JArray.hh.

803  {
804  return out << buffer[0];
805  }

Member Data Documentation

◆ const_pointer

template<class T >
const typedef T* JTOOLS::JArray< 1, T >::const_pointer

Definition at line 511 of file JArray.hh.

◆ const_iterator

template<class T >
const typedef T* JTOOLS::JArray< 1, T >::const_iterator

Definition at line 513 of file JArray.hh.

◆ const_reference

template<class T >
const typedef T& JTOOLS::JArray< 1, T >::const_reference

Definition at line 518 of file JArray.hh.

◆ N

template<class T >
const unsigned int JTOOLS::JArray< 1, T >::N = 1
static

Definition at line 509 of file JArray.hh.

◆ buffer

template<class T >
T JTOOLS::JArray< 1, T >::buffer[1]
protected

Definition at line 808 of file JArray.hh.


The documentation for this class was generated from the following file:
JTOOLS::JArray< 1, T >::buffer
T buffer[1]
Definition: JArray.hh:808
JMATH::JCalculator
Auxiliary class for arithmetic operations on objects.
Definition: JCalculator.hh:18
JTOOLS::JArray< 1, T >::N
static const unsigned int N
Definition: JArray.hh:509