?
Schnuffel91 schrieb:
Problem:
Wenn ein Sample aus der kompletten Zeichenkette aller Messwerte besteht (wie jetzt), dann kann ich damit ja nicht rechnen.
im ControlChart haben. (y beschreibt Samples, x beschreibt Werte der Samples)
Damit ich z.B. Rechnen kann
Gesamtdurchschnitt = 0;
for(int i = 0; i< y; i++)
{
Gesamtdurchschnitt += samples[i][4]; //An [i][4] steht bei jedem Sample der Messwertedurchschnitt des Samples
}
Gesamtdurchschnitt /= i;
Der Gesamtdurchschnitt soll auch in den vector.
Anschließend sollen die Samplereihen (inkl. Gesamtdurchschnitt) in eine Datei geschrieben werden.
Verstehe ich nicht.
Ich wuerde auch die Messwerte und die Durchschnitte getrennt halten.
Vielleicht hilft folgendes:
#include <vector>
#include <iostream>
struct sample{
using container = std::vector<float>;
container data;
};
struct controlchart{
using container = std::vector<sample>;
void push_back(const sample&s){
samples.push_back(s);
}
// gibt den 4. Wert eines jeden Samples aus
void print_4th() const {
for(auto i=0u; i<samples.size(); ++i)
if(3<samples[i].data.size())
std::cout << samples[i].data[3] << '\n';
}
private:
container samples;
};
int main(){
sample samples[] = {
{ {0.f, 1.f, 2.f, 33.f} },
{ {1.f, 2.f, 3.f, 44.f} },
{ {2.f, 3.f, 4.f, 55.f} }
};
controlchart cc;
for(const auto& s : samples)
cc.push_back(s);
cc.print_4th();
}
Das Beispiel hat keinen tieferen Sinn - aber in Z. 18 greife ich über zwei Indizes in zwei verschiedenen Vektoren auf einen Wert zu.
Ungefähr das, womit Du Probleme zu haben scheinst.
Der Code benutzt hier und da C++11. Achte also darauf, dass Dein Compiler das unterstüzt (Z. 18 ist allerdings nicht speziell C++11).
Hoffentlich hilft es.
Wobei ich - wie schon gesagt - mit einigem, dass Du vorhast arge Bauchschmerzen habe...