Re: А почему QList - это QVector?
От: Igore Россия  
Дата: 11.11.25 12:53
Оценка: +2
Здравствуйте, Hоmunculus, Вы писали:

H>Почему в Qt6 это одно и то же?

H>Я понимаю конечно, что вектор популярнее. Но как бы программисты же понимают разницу и когда что лучше использовать. С фига ли разрабы Qt решили, что им лучше известно, что нам надо?
Так исторически сложилось, там и QVector был не std::vector а больше std::deque, и QMap тоже не std::map, об этом неудачном решении говорили еще во времена Qt4, сами же они во времена Qt5 рекомендовали использовать контейнеры из std и много где были добавлены конструкторы от std и всякие toStdVector.

https://www.qt.io/blog/qlist-changes-in-qt-6
Отредактировано 11.11.2025 12:54 Igore . Предыдущая версия .
Re[4]: А почему QList - это QVector?
От: LaptevVV Россия  
Дата: 17.11.25 15:02
Оценка: +1
A>>>3) Названия в английском языке вообще редко отражают суть. Например, в STL — "vector" — это название-урод. Потому что имеется в виду не вектор, а "array". Но всем пофигу.
LVV>>Ну, array они оставили для массива фиксированного размера.
A>Ну вот... неумный поступок. Потому что и то и другое — array, только один жёсткий, а второй — расширяемый.
A>Поэтому называться они должны плюс-минус одинаково (возможно с префиксами и суффиксами).
Ну, меня вектор тоже поначалу удивлял.
Но потом как-то привык.
Уместнее что-то типа dynamic_array...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
А почему QList - это QVector?
От: Hоmunculus  
Дата: 11.11.25 07:45
Оценка:
Почему в Qt6 это одно и то же?
Я понимаю конечно, что вектор популярнее. Но как бы программисты же понимают разницу и когда что лучше использовать. С фига ли разрабы Qt решили, что им лучше известно, что нам надо?
Re: А почему QList - это QVector?
От: Великий Мессия google
Дата: 11.11.25 08:43
Оценка:
ну если вы настолько обленились что бы сначала в гугл сходить почитать

то что говорить тогда о других сферах жизни
той же политике..
Re: А почему QList - это QVector?
От: alpha21264 СССР  
Дата: 11.11.25 08:55
Оценка:
Здравствуйте, Hоmunculus, Вы писали:

H>Почему в Qt6 это одно и то же?

H>Я понимаю конечно, что вектор популярнее. Но как бы программисты же понимают разницу и когда что лучше использовать. С фига ли разрабы Qt решили, что им лучше известно, что нам надо?

1) Они не так уж и неправы.
2) Они придумывали свои названия одновременно с STL (и даже раньше STL), и STL им был не указ.
3) Названия в английском языке вообще редко отражают суть. Например, в STL — "vector" — это название-урод. Потому что имеется в виду не вектор, а "array". Но всем пофигу.

Течёт вода Кубань-реки куда велят большевики.
Re[2]: А почему QList - это QVector?
От: LaptevVV Россия  
Дата: 11.11.25 10:38
Оценка:
A>3) Названия в английском языке вообще редко отражают суть. Например, в STL — "vector" — это название-урод. Потому что имеется в виду не вектор, а "array". Но всем пофигу.
Ну, array рни оставили для массива фиксированного размера.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[2]: А почему QList - это QVector?
От: Skorodum Россия  
Дата: 17.11.25 12:24
Оценка:
Здравствуйте, Igore, Вы писали:

I>Так исторически сложилось, там и QVector был не std::vector а больше std::deque, и QMap тоже не std::map, об этом неудачном решении говорили еще во времена Qt4, сами же они во времена Qt5 рекомендовали использовать контейнеры из std и много где были добавлены конструкторы от std и всякие toStdVector.

Рекомендация там не общая, а конкретно про связаный список:

If you need a real linked list, which guarantees constant time insertions mid-list and uses iterators to items rather than indexes, use std::list.


Контейнеры Qt используют COW, поэтому переключение с QVector/QList на std::vector может иметь очень сильные побочные эффекты.
Re[3]: А почему QList - это QVector?
От: alpha21264 СССР  
Дата: 17.11.25 13:06
Оценка:
Здравствуйте, LaptevVV, Вы писали:

A>>3) Названия в английском языке вообще редко отражают суть. Например, в STL — "vector" — это название-урод. Потому что имеется в виду не вектор, а "array". Но всем пофигу.

LVV>Ну, array рни оставили для массива фиксированного размера.

Ну вот... неумный поступок. Потому что и то и другое — array, только один жёсткий, а второй — расширяемый.
Поэтому называться они должны плюс-минус одинаково (возможно с префиксами и суффиксами).

Течёт вода Кубань-реки куда велят большевики.
Re[3]: А почему QList - это QVector?
От: Igore Россия  
Дата: 18.11.25 08:17
Оценка:
Здравствуйте, Skorodum, Вы писали:

I>>Так исторически сложилось, там и QVector был не std::vector а больше std::deque, и QMap тоже не std::map, об этом неудачном решении говорили еще во времена Qt4, сами же они во времена Qt5 рекомендовали использовать контейнеры из std и много где были добавлены конструкторы от std и всякие toStdVector.

S>Рекомендация там не общая, а конкретно про связаный список:
S>

S>If you need a real linked list, which guarantees constant time insertions mid-list and uses iterators to items rather than indexes, use std::list.

Я про то что они рассказывали на конференции по Qt5, лет 7 назад.

S>Контейнеры Qt используют COW, поэтому переключение с QVector/QList на std::vector может иметь очень сильные побочные эффекты.

Возможно, но я как то особо и не припомню чтобы мне тяжелые объекты надо было через signal/slot прогонять. Ну и можно в signal/slot оставть Qt контейнеры, а в самой модели уже использовать std::
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.