Jestem po prostu ciekawy. Powiedzmy na przykład, że muszę wypisać numer w konsoli.Qt: Co jest lepsze dla przekształcania liczby na QString, QVariant lub QString :: number
Kod byłoby:
#include <QDebug>
#include <QVariant>
#include <QString>
void displayNumber(quint8 number) {
qDebug() << QVariant(number).toString();
qDebug() << QString::number(number);
//or for example
// QLabel label;
// label.setText(QString::number(number));
//or
// label.setText(QVariant(number).toString());
}
Która byłaby lepszą wydajność mądry? Myślę, że zużycie pamięci również jest inne. QVariant (liczba) .toString() oznaczałoby, że przechowuje QVariant w stosie. Nie jesteś pewien co do QString :: number(), czy nie powinien on po prostu wywoływać funkcji (oczywiście, funkcja ma return QString, więc jest przydzielana na stosie i zabiera to miejsce, a operacje są przydzielane i nieprzydzielane)? W każdym razie sizeof() daje mi 16 bajtów dla QVariant i 4 bajty dla QString.
Tak też myślałem. Przydziela QVariant i po wywołaniu .toString() przydziela również QString i zwraca QString. –
@Moraru, tak, dokładnie;) – SingerOfTheFall