Russian Qt Forum
Ноябрь 26, 2024, 05:37 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Что вы посоветуете QList или QLinkedList  (Прочитано 10652 раз)
fabricant
Гость
« : Январь 17, 2012, 11:38 »

Задача такая нужен контейнер с которого посреди выполнения программы можно удалить элемент который будет где то в середине списка элементов не очень много до 20. что лучше для этого использовать QList или QLinkedList?
« Последнее редактирование: Январь 17, 2012, 11:41 от fabricant » Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Январь 17, 2012, 11:41 »

QList или QVector. С таким количеством, значения большого не имеет.
« Последнее редактирование: Январь 17, 2012, 11:43 от Пантер » Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
fabricant
Гость
« Ответ #2 : Январь 17, 2012, 11:42 »

Спасибо
Записан
fabricant
Гость
« Ответ #3 : Январь 17, 2012, 11:44 »

еще вопрос если я удалю элемент по среди списка там будет пустое место как в массиве?
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #4 : Январь 17, 2012, 12:00 »

Нет. Этот элемент удалится и список станет меньше на один элемент.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
fabricant
Гость
« Ответ #5 : Январь 17, 2012, 12:22 »

Спасибо
Записан
fabricant
Гость
« Ответ #6 : Январь 17, 2012, 13:38 »

А можно как то через foreach или что то другое получить доступ сразу к 2 QList в которых я точно знаю одинаковое количество элементов
« Последнее редактирование: Январь 17, 2012, 13:43 от fabricant » Записан
mutineer
Гость
« Ответ #7 : Январь 17, 2012, 13:46 »

Ну for(int i = 0;...)
Записан
fabricant
Гость
« Ответ #8 : Январь 17, 2012, 13:49 »

спасибо
Записан
Exproment
Гость
« Ответ #9 : Январь 17, 2012, 16:16 »

Для операции вставки/удаления лучше QList. Т.к. данные операции будут выполнятся быстрее... QVector - есть умная обертка над массивом. При удалении элемента из середины - массиву необходимо перераспределять память, в то время как в списке - только заменить указатели.

И "для такого количества не имеет значения" - бред... если делать, то правильно! при любом количестве...
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #10 : Январь 17, 2012, 16:20 »

И "для такого количества не имеет значения" - бред... если делать, то правильно! при любом количестве...
На таком количестве данных, лист не имеет никаких преимуществ перед вектором. Плюс к тому, QList не стандартный лист, а смесь с вектором.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Exproment
Гость
« Ответ #11 : Январь 17, 2012, 16:28 »

Знаешь.. как-то в моей фирме было задание создать базу на 100 записей - мол больше НИКОГДА- НИ ПРИ КАКИХ УСЛОВИЯХ не будет... спустя три года(!!!) все-таки пришлось делать реинженирование проекта и сегодня в той самой БД более 1 млн. записей. Не имеет значение размер... QList и QVector были созданы для разных вещей и они при правильном подходе не взаимозаменяемы...
Записан
mutineer
Гость
« Ответ #12 : Январь 17, 2012, 17:00 »

QList и QVector при определенных условиях (размер хранимого объекта) практически одно и то же
Записан
Exproment
Гость
« Ответ #13 : Январь 17, 2012, 17:43 »

И правда... зачем эти идиоты из Nokia разделяли данные понятия...
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #14 : Январь 17, 2012, 18:03 »

И правда... зачем эти идиоты из Nokia разделяли данные понятия...
А понятие здесь одно - контейнер прямого доступа. Отличается техникой: храним сами элементы или указатели  Вставка/удаление в QList  - операции далеко не быстрые, просто ощутимо быстрее по сравнению с QVector. Оба не имеют серьезных преимуществ по сравнению с std (хотя и не хуже)
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.053 секунд. Запросов: 23.