Название: Что вы посоветуете QList или QLinkedList Отправлено: fabricant от Январь 17, 2012, 11:38 Задача такая нужен контейнер с которого посреди выполнения программы можно удалить элемент который будет где то в середине списка элементов не очень много до 20. что лучше для этого использовать QList или QLinkedList?
Название: Re: Что вы посоветуете QList или QLinkedList Отправлено: Пантер от Январь 17, 2012, 11:41 QList или QVector. С таким количеством, значения большого не имеет.
Название: Re: Что вы посоветуете QList или QLinkedList Отправлено: fabricant от Январь 17, 2012, 11:42 Спасибо
Название: Re: Что вы посоветуете QList или QLinkedList Отправлено: fabricant от Январь 17, 2012, 11:44 еще вопрос если я удалю элемент по среди списка там будет пустое место как в массиве?
Название: Re: Что вы посоветуете QList или QLinkedList Отправлено: Пантер от Январь 17, 2012, 12:00 Нет. Этот элемент удалится и список станет меньше на один элемент.
Название: Re: Что вы посоветуете QList или QLinkedList Отправлено: fabricant от Январь 17, 2012, 12:22 Спасибо
Название: Re: Что вы посоветуете QList или QLinkedList Отправлено: fabricant от Январь 17, 2012, 13:38 А можно как то через foreach или что то другое получить доступ сразу к 2 QList в которых я точно знаю одинаковое количество элементов
Название: Re: Что вы посоветуете QList или QLinkedList Отправлено: mutineer от Январь 17, 2012, 13:46 Ну for(int i = 0;...)
Название: Re: Что вы посоветуете QList или QLinkedList Отправлено: fabricant от Январь 17, 2012, 13:49 спасибо
Название: Re: Что вы посоветуете QList или QLinkedList Отправлено: Exproment от Январь 17, 2012, 16:16 Для операции вставки/удаления лучше QList. Т.к. данные операции будут выполнятся быстрее... QVector - есть умная обертка над массивом. При удалении элемента из середины - массиву необходимо перераспределять память, в то время как в списке - только заменить указатели.
И "для такого количества не имеет значения" - бред... если делать, то правильно! при любом количестве... Название: Re: Что вы посоветуете QList или QLinkedList Отправлено: Пантер от Январь 17, 2012, 16:20 И "для такого количества не имеет значения" - бред... если делать, то правильно! при любом количестве... На таком количестве данных, лист не имеет никаких преимуществ перед вектором. Плюс к тому, QList не стандартный лист, а смесь с вектором. Название: Re: Что вы посоветуете QList или QLinkedList Отправлено: Exproment от Январь 17, 2012, 16:28 Знаешь.. как-то в моей фирме было задание создать базу на 100 записей - мол больше НИКОГДА- НИ ПРИ КАКИХ УСЛОВИЯХ не будет... спустя три года(!!!) все-таки пришлось делать реинженирование проекта и сегодня в той самой БД более 1 млн. записей. Не имеет значение размер... QList и QVector были созданы для разных вещей и они при правильном подходе не взаимозаменяемы...
Название: Re: Что вы посоветуете QList или QLinkedList Отправлено: mutineer от Январь 17, 2012, 17:00 QList и QVector при определенных условиях (размер хранимого объекта) практически одно и то же
Название: Re: Что вы посоветуете QList или QLinkedList Отправлено: Exproment от Январь 17, 2012, 17:43 И правда... зачем эти идиоты из Nokia разделяли данные понятия...
Название: Re: Что вы посоветуете QList или QLinkedList Отправлено: Igors от Январь 17, 2012, 18:03 И правда... зачем эти идиоты из Nokia разделяли данные понятия... А понятие здесь одно - контейнер прямого доступа. Отличается техникой: храним сами элементы или указатели Вставка/удаление в QList - операции далеко не быстрые, просто ощутимо быстрее по сравнению с QVector. Оба не имеют серьезных преимуществ по сравнению с std (хотя и не хуже)Название: Re: Что вы посоветуете QList или QLinkedList Отправлено: kambala от Январь 17, 2012, 19:00 И правда... зачем эти идиоты из Nokia разделяли данные понятия... данные классы были созданы не Нокией - в то время она к Qt вообще никакого отношения не имелаНазвание: Re: Что вы посоветуете QList или QLinkedList Отправлено: Пантер от Январь 18, 2012, 07:23 Знаешь.. как-то в моей фирме было задание создать базу на 100 записей - мол больше НИКОГДА- НИ ПРИ КАКИХ УСЛОВИЯХ не будет... спустя три года(!!!) все-таки пришлось делать реинженирование проекта и сегодня в той самой БД более 1 млн. записей. Не имеет значение размер... QList и QVector были созданы для разных вещей и они при правильном подходе не взаимозаменяемы... QList и QVector взаимозаменяемы. Поэтому где-нибудьtypedef QVector <someType> SomeTypeContainer и в будущем изменяешь только эту строчку. Название: Re: Что вы посоветуете QList или QLinkedList Отправлено: Igors от Январь 19, 2012, 14:34 QList и QVector взаимозаменяемы. Поэтому где-нибудь Ну не совсем. Напрtypedef QVector <someType> SomeTypeContainer и в будущем изменяешь только эту строчку. Код С QList я могу спокойно использовать указатель на R, с QVector - только до следующего push_back и др |