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ää

#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

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);
}


  • No labels
You must log in to comment.