Почему в примере Qt SimpleTreeModel используется std::vector> вместо простого std::vector<>?C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Почему в примере Qt SimpleTreeModel используется std::vector> вместо простого std::vector<>?

Сообщение Anonymous »

Я использую Qt 6.5 в проекте и пытаюсь реорганизовать/улучшить древовидную модель, которая изначально была написана в Qt 5.10. Я потратил некоторое время на изучение примера SimpleTreeModel в Qt и успешно использовал код для создания собственной модели:

Код: Выделить всё

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;
};
Но меня беспокоит использование std::vector (

Код: Выделить всё

std::vector
в предыдущих версиях Qt). Зачем использовать это вместо более простого std::vector?
Я не вижу смысла использовать здесь указатель, базовый или умный, поскольку это добавляет уровень косвенности, который не является необходимым и может быть дорогостоящим для моделей с большим количеством элементов.

Подробнее здесь: https://stackoverflow.com/questions/793 ... tr-instead
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»