QVector on dynaamisesti kasvava vektori ja QVector on luokkamalli template. Tämä tarkoittaa sitä, vektoria luotaessa esimerkiksi seuraavasti
QVector <int> dVektori;
kulmasulkeiden sisällä määrätään vektorin alkioiden tyyppi muttei vektorin kokoa(dynaamisuus). Tyyppi voi olla mikä tahansa C:n tyyppi tai itse tehty luokka, jolloin vektori muodostuu osoittimista ko. luokan olioihin.
Otsikkotiedostoon tulee lisää
Code Block |
---|
#ifndef DIALOG_H #define DIALOG #include <QtGui/QDialog> #include <QVector> namespace Ui { class Dialog; } class Dialog : public QDialog { Q_OBJECT public: Dialog(QWidget *parent = 0); ~Dialog(); private: Ui::Dialog *ui; QVector <double> dVektori;//otsikkotiedostossa ei voi alustaa vektorin kokoa EI esim. dVektori(10) private slots: void LaskeVektoreilla(); void LinkitettyLista(); }; #endif // DIALOG_H#include <QVector> . . . QVector <double> dVektori;//otsikkotiedostossa ei voi alustaa vektorin kokoa EI esim. dVektori(10) QVector <int> iVektori; QVector <float> fVektori; QVector <OmaLuokka*> omaVektori;//olioista koostuva vektori on esiteltävä osoitteena luokkaan, koska olion koko saataa muuttua eikä niitä siten voi tallettaa peräkkäin muistiin . . . }; |
Lasketellaan vähän vektoreilla
Code Block |
---|
void Dialog::LaskeVektoreilla()
{ omaVektori.resize(10);
}
void Dialog::LaskeVektoreilla()
{
int i=0;
double dApu;
QString teksti="";
QString Apu;
QVector <double> Apuvektori(10);//paikallisen vektorin koko voidaan määritellä alustuksessa
dVektori.append(3.6778);//jäsenmuuttujana olevaan vektoriin lisätään jäseniä käskyllä append
Apuvektori[0]=56.8;//paikalliseen, määrältään alustettuun vektoriin voidaan asettaa muuttujia indeksin avulla
for(i=0; i<7; ++i)
{
dApu=(double) i;
Apuvektori[i]=dApu;
dVektori.append(dApu);
Apu.sprintf("%.2lf %.2lf\n",Apuvektori[i], dVektori[i]);
teksti+=Apu;
}
i=Apuvektori.count();
Apu.sprintf("%d ",i);
teksti+=Apu;
i=dVektori.count();
Apu.sprintf("%d ",i);
teksti+=Apu;
ui->textEdit->setText(teksti);
}
|