Здравствуйте, Hоmunculus, Вы писали:
H>Почему в Qt6 это одно и то же? H>Я понимаю конечно, что вектор популярнее. Но как бы программисты же понимают разницу и когда что лучше использовать. С фига ли разрабы Qt решили, что им лучше известно, что нам надо?
Так исторически сложилось, там и QVector был не std::vector а больше std::deque, и QMap тоже не std::map, об этом неудачном решении говорили еще во времена Qt4, сами же они во времена Qt5 рекомендовали использовать контейнеры из std и много где были добавлены конструкторы от std и всякие toStdVector.
A>>>3) Названия в английском языке вообще редко отражают суть. Например, в STL — "vector" — это название-урод. Потому что имеется в виду не вектор, а "array". Но всем пофигу. LVV>>Ну, array они оставили для массива фиксированного размера. A>Ну вот... неумный поступок. Потому что и то и другое — array, только один жёсткий, а второй — расширяемый. A>Поэтому называться они должны плюс-минус одинаково (возможно с префиксами и суффиксами).
Ну, меня вектор тоже поначалу удивлял.
Но потом как-то привык.
Уместнее что-то типа dynamic_array...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Почему в Qt6 это одно и то же?
Я понимаю конечно, что вектор популярнее. Но как бы программисты же понимают разницу и когда что лучше использовать. С фига ли разрабы Qt решили, что им лучше известно, что нам надо?
Здравствуйте, Hоmunculus, Вы писали:
H>Почему в Qt6 это одно и то же? H>Я понимаю конечно, что вектор популярнее. Но как бы программисты же понимают разницу и когда что лучше использовать. С фига ли разрабы Qt решили, что им лучше известно, что нам надо?
1) Они не так уж и неправы.
2) Они придумывали свои названия одновременно с STL (и даже раньше STL), и STL им был не указ.
3) Названия в английском языке вообще редко отражают суть. Например, в STL — "vector" — это название-урод. Потому что имеется в виду не вектор, а "array". Но всем пофигу.
A>3) Названия в английском языке вообще редко отражают суть. Например, в STL — "vector" — это название-урод. Потому что имеется в виду не вектор, а "array". Но всем пофигу.
Ну, array рни оставили для массива фиксированного размера.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Здравствуйте, 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 может иметь очень сильные побочные эффекты.
Здравствуйте, LaptevVV, Вы писали:
A>>3) Названия в английском языке вообще редко отражают суть. Например, в STL — "vector" — это название-урод. Потому что имеется в виду не вектор, а "array". Но всем пофигу. LVV>Ну, array рни оставили для массива фиксированного размера.
Ну вот... неумный поступок. Потому что и то и другое — array, только один жёсткий, а второй — расширяемый.
Поэтому называться они должны плюс-минус одинаково (возможно с префиксами и суффиксами).
Здравствуйте, 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::