Russian Qt Forum
Ноябрь 27, 2024, 10:54
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Общие вопросы
>
QList и QVector
Страниц:
1
2
[
3
]
4
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: QList и QVector (Прочитано 38022 раз)
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: QList и QVector
«
Ответ #30 :
Август 28, 2010, 11:00 »
Цитата: sergek от Август 27, 2010, 21:00
Цитата: foufou от Август 27, 2010, 19:25
Почитаю еще только...
Посмотрите еще книги:
Николай Джосьютис. C++ Стандартная библиотека. Для профессионалов.
Бьерн Страуструп. Язык программирования C++. Специальное издание.
Думаю, это будет полезнее, чем ковыряться в исходниках даже такой хорошей штуки, как Qt. Средства стандартной библиотеки эффективнее любых других по определению...
Если упоминаем Библию, давайте будем более точны. Там написано что стандартная библиотека должна "обеспечивать достойную конкуренцию" другим разработкам, но нигде не утверждается об ее абсолютной эффективности.
Мое личное мнение: эффективнее тот инструмент который программист лучше знает, понимает и применяет с толком. Огромное количество "говнокода" связано именно с STL и совсем не потому что он плох. Свалиться в изучение const iterator и.т.п очень легко, ведь это выглядит довольно круто
Дальше все идет по накатанной дорожке "знаю что давать на вход - получу такой-то результат". А как это работает? А чего стоит удобство использования? А есть ли лучшее решение? Увы, в большинстве случаев STL-щику очень не нравится когда разговор заходит об этом
Так что рекомендовать STL надо осторожно
Записан
Sergey B.
Программист
Offline
Сообщений: 544
Re: QList и QVector
«
Ответ #31 :
Август 28, 2010, 12:23 »
Но тем не менее STL есть везде, где есть стандартный С++ компилятор, и она работает.
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: QList и QVector
«
Ответ #32 :
Август 28, 2010, 12:42 »
Цитата: Sergey B. от Август 28, 2010, 12:23
Но тем не менее STL есть везде, где есть стандартный С++ компилятор, и она работает.
Ну что "есть" везде - на то она и включена в стандарт. А вот используется/применяется далеко не везде. Напр. когда-то приходилось заниматься 3ds, так в ихнем SDK никакой STL почему-то не наблюдалось. Да и Qt использует "мелкие вкралления STL" - не более того
А насчет "работает" - так то на нормальной платформе/компиляторе. А на MSVC удовольствие ниже среднего
Записан
Авварон
Джедай : наставник для всех
Offline
Сообщений: 3260
Re: QList и QVector
«
Ответ #33 :
Август 28, 2010, 13:47 »
тем более что реализации stl могут отличаться от компилера к компилеру
Записан
usr00210
Гость
Re: QList и QVector
«
Ответ #34 :
Август 29, 2010, 15:57 »
тут еще про сложность алгоритмов еще кажется не говорили. для QList сложность O(1). так что с точки зрения производительности лучче использовать QList чем QVector. QVector еще удобнее (спорный момент) тем, что с его элементами можно работать как с обычным массивом в С, например передавать в функции в виде обычных С массивов.
Записан
Alex_cs_gsp
Гость
Re: QList и QVector
«
Ответ #35 :
Август 29, 2010, 16:57 »
Да, а для QVector по твоему какая сложность? Удобный/неудобный это диван или кресло может быть, тут нужно подходит или не подходит.
«
Последнее редактирование: Август 29, 2010, 16:59 от Alex_cs_gsp
»
Записан
pastor
Administrator
Джедай : наставник для всех
Offline
Сообщений: 2901
Re: QList и QVector
«
Ответ #36 :
Август 29, 2010, 17:22 »
Цитата: usr00210 от Август 29, 2010, 15:57
для QList сложность O(1).
Не О(1), а Amort О(1) и это при вставке в начало. Во всех остальных операциях контейнеры равны.
Записан
Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Alex_cs_gsp
Гость
Re: QList и QVector
«
Ответ #37 :
Август 29, 2010, 17:54 »
Чем вставка в начало QList отличается от вставки в начало QVector?
Записан
Авварон
Джедай : наставник для всех
Offline
Сообщений: 3260
Re: QList и QVector
«
Ответ #38 :
Август 29, 2010, 17:55 »
тем что у кулиста есть область спереди, а у вектора - нет
Записан
pastor
Administrator
Джедай : наставник для всех
Offline
Сообщений: 2901
Re: QList и QVector
«
Ответ #39 :
Август 29, 2010, 18:31 »
Немного про структуру контейнеров можно почитать здесь:
http://doc.trolltech.com/qq/qq19-containers.html
Записан
Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Alex_cs_gsp
Гость
Re: QList и QVector
«
Ответ #40 :
Август 29, 2010, 18:33 »
А чё в кувекторе не сделали? Одну лишнюю переменную хранящую сдвиг пожалели, вместо нулевых указателей для кулиста?
Записан
Авварон
Джедай : наставник для всех
Offline
Сообщений: 3260
Re: QList и QVector
«
Ответ #41 :
Август 29, 2010, 18:36 »
вектор - это вектор, просто массив с динамической длинной.
кулист - это список, то есть структура, ориентированная на аппенд/препенд/инсерт
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: QList и QVector
«
Ответ #42 :
Август 29, 2010, 19:15 »
Цитата: usr00210 от Август 29, 2010, 15:57
QVector еще удобнее (спорный момент) тем, что с его элементами можно работать как с обычным массивом в С, например передавать в функции в виде обычных С массивов.
Да, c QList так не получится. Но с др. стороны QVector (по крайней мере на некоторых платформах) не перешагнет через барьер 1Gb, а QList пожалуйста
Записан
Alex_cs_gsp
Гость
Re: QList и QVector
«
Ответ #43 :
Август 29, 2010, 21:13 »
От лукавого это все. Если нужно писать выскопроизводительный код, например серверный или для автоматизированных систем, то это уже не для Qt. Для пользовательских программ учет времени, которое затрачивается на разыменование указателя нет смысла учитывать.
Записан
Авварон
Джедай : наставник для всех
Offline
Сообщений: 3260
Re: QList и QVector
«
Ответ #44 :
Август 29, 2010, 21:32 »
чем же скорость работы Qt в плане контейнеров меньше того же буста? Другое дело, что таскать Qt и не использовать многие фичи оттуда, которые в таких приложениях не нужны, смысла нет
Записан
Страниц:
1
2
[
3
]
4
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...