Tôi chỉ tò mò thôi. Ví dụ: tôi cần xuất một số trong bảng điều khiển.Qt: Cách nào tốt hơn để chuyển một số thành QString, QVariant hoặc QString :: number
Mã này sẽ là:
#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());
}
Đó sẽ là hiệu suất tốt hơn khôn ngoan? Tôi nghĩ tiêu thụ bộ nhớ cũng khác nhau. QVariant (số) .toString() có nghĩa là nó lưu trữ một QVariant trong ngăn xếp. Không chắc chắn về QString :: number(), không nên nó chỉ gọi hàm (chắc chắn, hàm có trả về QString do đó nó được cấp phát trên stack và lấy không gian đó và các hoạt động đó để cấp phát và không phân bổ nó)? Dù sao, sizeof() cho tôi 16 Bytes cho QVariant và 4 Bytes cho QString.
Đó cũng là những gì tôi đã suy nghĩ. Nó phân bổ QVariant và sau khi gọi .toString() nó cũng phân bổ một QString và trả về QString. –
@Moraru, vâng, chính xác;) – SingerOfTheFall