[gelöst] QVector <int> nach QVector<double>

Alles rund um die Programmierung mit Qt
Antworten
RogerWilco
Beiträge: 61
Registriert: 26. November 2009 00:08
Kontaktdaten:

[gelöst] QVector <int> nach QVector<double>

Beitrag von RogerWilco »

Hallo zusammen,

ich möchte meine Daten aus einem QVector, mit int gefüllt, in einem qwt Plot visualisieren.
Nun möchte qwt aber Vectoren mit double Werten.
Kann man einen QVector direkt umwandeln, oder muss man das manuell Element für Element tuen?
Zuletzt geändert von RogerWilco am 27. Dezember 2009 14:16, insgesamt 1-mal geändert.
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Code: Alles auswählen

QVector<int> iv;
QVector<double> dv;
dv.reserve(i.size());
for (int i=0; i<iv.size(); i++) {
  dv.append((double)iv.at(i));
}
RogerWilco
Beiträge: 61
Registriert: 26. November 2009 00:08
Kontaktdaten:

Beitrag von RogerWilco »

Hallo Upsala,

da ähneln sich unsere Lösungsansätze...

void cSpectrum::getAmplitudeVector(QVector <double> &AmplitudeVector)
{
for (int i = 0 ; i < m_Amplitudes.size(); i++ )
AmplitudeVector.append(double(m_Amplitudes));
}


Ich hätte gedacht, daß es dafür vielleicht sogar eine Funktion gibt, in der Art QVector::toDouble() oder dergleichen...
Curtis Newton
Beiträge: 122
Registriert: 11. Juni 2008 18:39

Beitrag von Curtis Newton »

upsala hat geschrieben:

Code: Alles auswählen

QVector<int> iv;
QVector<double> dv;
dv.reserve(i.size());
for (int i=0; i<iv.size(); i++) {
  dv.append((double)iv.at(i));
}
Ich würde nicht append, sondern dern indexoperator nehmen. Du hast ja den Vektor eh schon in der richtigen Größe reserviert.

C.
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Da ich reserve genommen habe muß ich ein append verwenden.
Hätte ich resize verwendet könnte ich replace hernehmen.
Curtis Newton
Beiträge: 122
Registriert: 11. Juni 2008 18:39

Beitrag von Curtis Newton »

upsala hat geschrieben:Da ich reserve genommen habe muß ich ein append verwenden.
Hätte ich resize verwendet könnte ich replace hernehmen.
Richtig. Sorry. So wars.

C.
Antworten