Public Types | Public Member Functions | List of all members
nmx::Data< N > Class Template Reference

The Data class Eine Klasse für Zahlentabellen mit fester Anzahl von Spalten. Die Anzahl der Reihen wächst automatisch. Intern wird ein std::vector von std::array angelegt. More...

#include <xdata.h>

Public Types

using Row = std::array< double, N >
 
using Container = std::vector< Row >
 
using Column = std::vector< double >
 
using View = View< Data< N > >
 

Public Member Functions

 Data ()
 Data Standardkonstruktor die Tabelle enthält keine Daten. More...
 
const auto & data () const
 data lesender Zugriff auf die interne Struktur More...
 
auto & data ()
 data schreibender Zugriff auf die interne Struktur More...
 
Rowfirst ()
 first erste Zeile (schreibender Zugriff) More...
 
const Rowfirst () const
 first erste Zeile (lesender Zugriff) More...
 
Rowlast ()
 last letzte Zeile (schreibender Zugriff) More...
 
const Rowlast () const
 last letzte Zeile (lesender Zugriff) More...
 
const auto & row (size_t idx) const
 row Zugriff auf Zeile per Index (lesen) More...
 
auto & row (size_t idx)
 row Zugriff auf Zeile per Index (schreiben) More...
 
size_t rows () const
 rows More...
 
size_t columns () const
 columns More...
 
void add (const Row &lst)
 add füge eine neue Zeile hinzu More...
 
void add (std::initializer_list< double > lst)
 add füge eine neue Reihe hinzu. Die Anzahl der Elemente darf kleiner als die Anzahl der Spalten sein More...
 
auto & operator+= (const Row &lst)
 operator += Hinzufügen einer Reihe More...
 
auto & operator+= (std::initializer_list< double > lst)
 operator += Hinzufügen einer Reihe More...
 
void save (std::ostream &ofs, Format fmt) const
 save Schreibe Tabelle in Datei More...
 
template<class FN >
void save (std::ostream &ofs, Format fmt, FN fn) const
 save Schreibe Tabelle in Datei More...
 
auto column (size_t cidx) const
 column Kopie einer Spalte More...
 
void set_column (const Column clmn, size_t idx)
 set_column Die Werte einer Spalte werden eingefügt oder ersetzt. Wenn die Tabelle leer ist wird erst Speicher reserviert More...
 
template<class FN >
void apply (FN fn)
 apply ändere alle oder bestimmte Elemente More...
 
void read_csv (std::ifstream &ifs)
 read_csv lese Daten aus csv-Datei More...
 
auto view () const
 view die ganze Tabelle als view More...
 
template<class PREDICATE >
auto view (PREDICATE fn, bool f=true, bool l=true) const
 view Teile der Tabelle als View More...
 
auto view (std::initializer_list< typename Container::iterator > lst, bool f=true, bool l=true)
 view Teile der Tabelle als View More...
 
auto select_rows (size_t step, size_t startidx=0, bool last=false) const
 view Teile der Tabelle als View More...
 
auto select_total_rows (size_t n, size_t start=0, bool l=true) const
 get_total_rows generiere View mit eine Instanz vom Typ View bestimmter Anzahl von Spalten More...
 
template<class FN >
Column column (size_t cidx, const FN &fn)
 column erstelle Kopie einer Spalte More...
 

Detailed Description

template<size_t N>
class nmx::Data< N >

The Data class Eine Klasse für Zahlentabellen mit fester Anzahl von Spalten. Die Anzahl der Reihen wächst automatisch. Intern wird ein std::vector von std::array angelegt.

Parameters
NAnzahl der Spalten

Definition at line 22 of file xdata.h.

Member Typedef Documentation

◆ Column

template<size_t N>
using nmx::Data< N >::Column = std::vector<double>

Definition at line 27 of file xdata.h.

◆ Container

template<size_t N>
using nmx::Data< N >::Container = std::vector<Row>

Definition at line 26 of file xdata.h.

◆ Row

template<size_t N>
using nmx::Data< N >::Row = std::array<double, N>

Definition at line 25 of file xdata.h.

◆ View

template<size_t N>
using nmx::Data< N >::View = View<Data<N> >

Definition at line 28 of file xdata.h.

Constructor & Destructor Documentation

◆ Data()

template<size_t N>
nmx::Data< N >::Data ( )
inline

Data Standardkonstruktor die Tabelle enthält keine Daten.

Definition at line 37 of file xdata.h.

Member Function Documentation

◆ add() [1/2]

template<size_t N>
void nmx::Data< N >::add ( const Row lst)
inline

add füge eine neue Zeile hinzu

Parameters
lstArray mit Zahlen

Definition at line 111 of file xdata.h.

◆ add() [2/2]

template<size_t N>
void nmx::Data< N >::add ( std::initializer_list< double >  lst)
inline

add füge eine neue Reihe hinzu. Die Anzahl der Elemente darf kleiner als die Anzahl der Spalten sein

Parameters
lstListe mit Zeilenelementen

Definition at line 118 of file xdata.h.

◆ apply()

template<size_t N>
template<class FN >
void nmx::Data< N >::apply ( FN  fn)
inline

apply ändere alle oder bestimmte Elemente

Parameters
fnFunktion, die als Eingabeargument eine Tabellenzeile erwartet

Definition at line 226 of file xdata.h.

◆ column() [1/2]

template<size_t N>
auto nmx::Data< N >::column ( size_t  cidx) const
inline

column Kopie einer Spalte

Parameters
cidxSpaltenindex
Returns
Spalte als Column (Synonym für std::vector)

Definition at line 185 of file xdata.h.

◆ column() [2/2]

template<size_t N>
template<class FN >
Column nmx::Data< N >::column ( size_t  cidx,
const FN &  fn 
)
inline

column erstelle Kopie einer Spalte

Parameters
cidxSpaltenindex
fnTestfunktion
Returns
Kopie der Spalte cidx

Definition at line 351 of file xdata.h.

◆ columns()

template<size_t N>
size_t nmx::Data< N >::columns ( ) const
inline

columns

Returns
Anzahl der Spalten

Definition at line 105 of file xdata.h.

◆ data() [1/2]

template<size_t N>
const auto& nmx::Data< N >::data ( ) const
inline

data lesender Zugriff auf die interne Struktur

Returns
Referenz auf interne Struktur

Definition at line 43 of file xdata.h.

◆ data() [2/2]

template<size_t N>
auto& nmx::Data< N >::data ( )
inline

data schreibender Zugriff auf die interne Struktur

Returns
Referenz auf interne Struktur

Definition at line 49 of file xdata.h.

◆ first() [1/2]

template<size_t N>
Row& nmx::Data< N >::first ( )
inline

first erste Zeile (schreibender Zugriff)

Returns
Referenz auf erste Zeile

Definition at line 55 of file xdata.h.

◆ first() [2/2]

template<size_t N>
const Row& nmx::Data< N >::first ( ) const
inline

first erste Zeile (lesender Zugriff)

Returns
Referenz auf erste Zeile

Definition at line 61 of file xdata.h.

◆ last() [1/2]

template<size_t N>
Row& nmx::Data< N >::last ( )
inline

last letzte Zeile (schreibender Zugriff)

Returns
Referenz auf letzte Zeile

Definition at line 67 of file xdata.h.

◆ last() [2/2]

template<size_t N>
const Row& nmx::Data< N >::last ( ) const
inline

last letzte Zeile (lesender Zugriff)

Returns
Referenz auf letzte Zeile

Definition at line 73 of file xdata.h.

◆ operator+=() [1/2]

template<size_t N>
auto& nmx::Data< N >::operator+= ( const Row lst)
inline

operator += Hinzufügen einer Reihe

Parameters
lstArray mit Zeilenelementen
Returns
Referenz auf aufrufendes Objekt

Definition at line 134 of file xdata.h.

◆ operator+=() [2/2]

template<size_t N>
auto& nmx::Data< N >::operator+= ( std::initializer_list< double >  lst)
inline

operator += Hinzufügen einer Reihe

Parameters
lstListe mit Zeilenelementen
Returns
Referenz auf aufrufendes Objekt

Definition at line 144 of file xdata.h.

◆ read_csv()

template<size_t N>
void nmx::Data< N >::read_csv ( std::ifstream &  ifs)
inline

read_csv lese Daten aus csv-Datei

Parameters
ifsEingabestrom

Definition at line 236 of file xdata.h.

◆ row() [1/2]

template<size_t N>
const auto& nmx::Data< N >::row ( size_t  idx) const
inline

row Zugriff auf Zeile per Index (lesen)

Parameters
idxZeilenindex
Returns
Referenz auf Zeile

Definition at line 80 of file xdata.h.

◆ row() [2/2]

template<size_t N>
auto& nmx::Data< N >::row ( size_t  idx)
inline

row Zugriff auf Zeile per Index (schreiben)

Parameters
idxZeilenindex
Returns
Referenz auf Zeile

Definition at line 90 of file xdata.h.

◆ rows()

template<size_t N>
size_t nmx::Data< N >::rows ( ) const
inline

rows

Returns
Anzahl der Reihen

Definition at line 99 of file xdata.h.

◆ save() [1/2]

template<size_t N>
void nmx::Data< N >::save ( std::ostream &  ofs,
Format  fmt 
) const
inline

save Schreibe Tabelle in Datei

Parameters
ofsAusgabestrom
fmtFormatierungsanweisung

Definition at line 160 of file xdata.h.

◆ save() [2/2]

template<size_t N>
template<class FN >
void nmx::Data< N >::save ( std::ostream &  ofs,
Format  fmt,
FN  fn 
) const
inline

save Schreibe Tabelle in Datei

Parameters
ofsAusgabestrom
fmtFormatierungsanweisung
fnFunktion zur Bearbeitung der Zeilen vor dem Schreiben in die Datei

Definition at line 174 of file xdata.h.

◆ select_rows()

template<size_t N>
auto nmx::Data< N >::select_rows ( size_t  step,
size_t  startidx = 0,
bool  last = false 
) const
inline

view Teile der Tabelle als View

Parameters
stepSchrittweite
startidxerste Stelle im Container
lastfüge letzte Tabellenzeile hinzu (optional)
Returns
eine Instanz vom Typ View

Definition at line 319 of file xdata.h.

◆ select_total_rows()

template<size_t N>
auto nmx::Data< N >::select_total_rows ( size_t  n,
size_t  start = 0,
bool  l = true 
) const
inline

get_total_rows generiere View mit eine Instanz vom Typ View bestimmter Anzahl von Spalten

Parameters
nAnzahl der Reihen

Definition at line 338 of file xdata.h.

◆ set_column()

template<size_t N>
void nmx::Data< N >::set_column ( const Column  clmn,
size_t  idx 
)
inline

set_column Die Werte einer Spalte werden eingefügt oder ersetzt. Wenn die Tabelle leer ist wird erst Speicher reserviert

Parameters
clmnSpalte die kopiert werden soll
idxSpaltenindex

Definition at line 201 of file xdata.h.

◆ view() [1/3]

template<size_t N>
auto nmx::Data< N >::view ( ) const
inline

view die ganze Tabelle als view

Returns
eine Instanz vom Typ View

Definition at line 258 of file xdata.h.

◆ view() [2/3]

template<size_t N>
template<class PREDICATE >
auto nmx::Data< N >::view ( PREDICATE  fn,
bool  f = true,
bool  l = true 
) const
inline

view Teile der Tabelle als View

Parameters
fnFunktionsobjekt zur Auswahl der Tabellenreihen
foptional füge erste Tabellenzeile hinzu
loptional füge letzte Tabellenzeile hinzu
Returns
eine Instanz vom Typ View

Definition at line 268 of file xdata.h.

◆ view() [3/3]

template<size_t N>
auto nmx::Data< N >::view ( std::initializer_list< typename Container::iterator >  lst,
bool  f = true,
bool  l = true 
)
inline

view Teile der Tabelle als View

Parameters
lsteine Liste mit Iteratoren, welche auf Elemente des Containers zeigen
ffüge erste Tabellenzeile hinzu (optional)
lfüge letzte Tabellenzeile hinzu (optional)
Returns
eine Instanz vom Typ View

Definition at line 292 of file xdata.h.


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