Seite 1 von 1

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

Verfasst: 16. Dezember 2009 11:50
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?

Verfasst: 16. Dezember 2009 12:24
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));
}

Verfasst: 16. Dezember 2009 14:41
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...

Verfasst: 16. Dezember 2009 15:22
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.

Verfasst: 16. Dezember 2009 16:07
von upsala
Da ich reserve genommen habe muß ich ein append verwenden.
Hätte ich resize verwendet könnte ich replace hernehmen.

Verfasst: 17. Dezember 2009 09:04
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.