Warum verwendet das SimpleTreeModel-Beispiel von Qt std::vector> anstelle von einfach std::vector<>?

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Warum verwendet das SimpleTreeModel-Beispiel von Qt std::vector> anstelle von einfach std::vector<>?

by Guest » 13 Jan 2025, 08:58

Ich verwende Qt 6.5 in einem Projekt und versuche, ein Baummodell zu überarbeiten/verbessern, das ursprünglich in Qt 5.10 geschrieben wurde. Ich habe einige Zeit damit verbracht, mir das SimpleTreeModel-Beispiel von Qt anzusehen und habe den Code erfolgreich verwendet, um mein eigenes Modell zu erstellen:

Code: Select all

class TreeItem
{
public:
explicit TreeItem(QVariantList data, TreeItem *parentItem = nullptr);

void appendChild(std::unique_ptr &&child);

TreeItem *child(int row);
int childCount() const;
int columnCount() const;
QVariant data(int column) const;
int row() const;
TreeItem *parentItem();

private:
std::vector m_childItems;
QVariantList m_itemData;
TreeItem *m_parentItem;
};
Aber etwas, das mich stört, ist die Verwendung von std::vector (

Code: Select all

std::vector
in früheren Qt-Versionen). Warum das verwenden, anstatt einen einfacheren std::vector zu verwenden?
Ich sehe keinen Sinn darin, hier einen Zeiger zu verwenden, weder einfach noch intelligent, da dies einen hinzufügt Indirektionsgrad, der nicht notwendig ist und bei Modellen mit vielen Elementen kostspielig sein kann.

Top