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

Programme in C++. Entwicklerforum
Guest
 Warum verwendet das SimpleTreeModel-Beispiel von Qt std::vector> anstelle von einfach std::vector<>?

Post by Guest »

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.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post