Data Table
-
Problem mit Lösung bei Bitmap:
void RenderTexture::VerticalFlip() { std::vector<unsigned char> buffer(image); for (auto index = 0U; index < height; ++index) { auto rowsize = width * pixelsize; auto subindex0 = index * rowsize; // Index zum Anfang der aktuellen Zeile auto subindex1 = subindex0 + rowsize; // Index eins über den letzten Index der aktuellen Zeile // "Überschreibt" aufsteigend Zeile für Zeile von der Kopie absteigend zum Bitmap std::copy(buffer.cbegin() + subindex0, buffer.cbegin() + subindex1, image.end() - subindex1); } }
-
@manni66 sagte in Data Table:
@hustbaer sagte in Data Table:
@manni66 sagte in Data Table:
kennt sie (wie du ja selber schon bemerkt hast) nur einen Datentyp
void*
Das heißt in C++ std::variant
Nein,
std::any
.
-
@theta sagte in Data Table:
@manni66 sagte in Data Table:
@hustbaer sagte in Data Table:
@manni66 sagte in Data Table:
kennt sie (wie du ja selber schon bemerkt hast) nur einen Datentyp
void*
Das heißt in C++ std::variant
Nein,
std::any
.Ja, da kann man mal wieder sehen, dass C++ vile komplizierter als C ist.
-
@manni66 sagte in Data Table:
@theta sagte in Data Table:
@manni66 sagte in Data Table:
@hustbaer sagte in Data Table:
@manni66 sagte in Data Table:
kennt sie (wie du ja selber schon bemerkt hast) nur einen Datentyp
void*
Das heißt in C++ std::variant
Nein,
std::any
.Ja, da kann man mal wieder sehen, dass C++ vile komplizierter als C ist.
Ja, stimmt. Manuelle Speicherverwaltung war schon immer so viel besser und schöner zu benutzen als die pöhsen und komplizierten c++ Features o.O
-
@dnkpp --> exceptions-and-raii-in-c/example.c :face_with_stuck-out_tongue_winking_eye:
-
@swordfish sagte in Data Table:
@dnkpp --> exceptions-and-raii-in-c/example.c :face_with_stuck-out_tongue_winking_eye:
this is yes for the crying
-
Dieser Beitrag wurde gelöscht!
-
@docshoe sagte in Array2D: Evolution von manueller Speicherverwaltung zur STL:
Wenn du eine Klasse Datatable brauchst kannst du die doch einfach über Komposition realisieren. Dann bauste noch deine Spaltenüberschriften und Stream I/O dazu und fertig ist die Laube. Das geht mit weniger als 100 Zeilen Code.
Habe über Komposition (composition) gelesen. Dann würde ich eine Klasse datatable nicht aus einer Klasse 2D-Array ableiten (oder 2D-Array als Basisklasse haben). Die Klasse 2D-Array wäre dann als Variable/Member in der Klasse datatable.
Stark vereinfacht also z.B. nicht:
class BaseClass {}; class DerivatedClass : public BaseClass {}
sondern
#pragma once class BaseClass {}; class DerivatedClass { private: BaseClass m_baseclass; };
@manni66 sagte in Data Table:
ist die Klasse nicht zum Ableiten gemacht (wie z.B. std::vector auch)
Das wäre dann auch gelöst.
@hustbaer sagte in Data Table:
void*
Seit C++11 hat ja std::vector Elementenabruf (element access)
some_vector.data()
, so muss man nicht mehr z.B.&some_vector[0]
schreiben.
-
@titan99_ sagte in Data Table:
@hustbaer sagte in Data Table:
void*
Seit C++11 hat ja std::vector Elementenabruf (element access) some_vector.data(), so muss man nicht mehr z.B. &some_vector[0] schreiben.
Deine Aussage hat nichts mit der von @hustbaer zu tun.
-
Danke für die Antworten
@theta Weil ein
reinterpret_cast
fehlt?Ideone gibt weder eine Warnung noch eine Fehlermeldung aus.
Das Problem dass entweder nur die Zeilen oder die Spalten im Speicher zusammenhängend sein können besteht immer noch. (Edit: ist aber glaube ich bei diesem Ziel gar kein Problem.)
Konkret brauche ich eine Datentabelle, weil ich mit
<random>
Stichproben (samples) generieren möchte und verschiedene Stichprobenfunktionenergebnisse aus den Stichproben berechnen möchte. Das aber alles für verschiedene (Wahrscheinlichkeits-)verteilungen und jeweils verschiedene Stichprobenfunktionen.Dazu möchte ich noch auch Math/Statistical Distributions von boost verwenden, also die Parameter (oder Koeffizienten?) der Verteilungen sollen bei
<random>
und Math/Statistical Distributions gleich sein.