Ответ
 
Опции вопроса Поиск в этом вопросе Опции просмотра
  #1  
Старый 28.09.2011, 18:56
Аватар для Guest
Guest
Вопрос
Сообщений: n/a
По умолчанию

В Ассистанте на тему работу QList'а указано следующее:===If T is itself a pointer type or a basic type that is no larger than a pointer, or if T is one of Qt's shared classes, then QList stores the items directly in the pointer array. For lists under a thousand items, this array representation allows for very fast insertions in the middle, and it allows index-based access.===Внутри QList'а (точнее QListData) вставка не в начало или конец реализуется как вызов memmove и заполнение освободившегося места. Никак не могу понять за счет чего достигается "very fast insertions"? Для QLinekdList это понятно, четыре указателя перевести, но для листа, чья внутренняя структура так похожа на обычный вектор - непонятно.Поясните, пожалуйста в чем разница реализации QVector и QList и почему же для интегральных и QT-related типов второй оказывается быстрее первого?
Ответить с цитированием
Ответ



Похожие вопросы
Тема Автор Раздел Ответов Последний вопрос или ответ
удаление записей из QList используя указатель на QList. Нужна консультация. Guest Новый архив 3 0 28.09.2011 20:43
QList<t> удаление одинаковых элементов QList / QSet Guest Новый архив 2 0 28.09.2011 19:42
QList + qSort Guest Новые вопросы и ответы 5 0 28.09.2011 18:47
QList<A*> преобразовать в QList<B*> Guest Новые вопросы и ответы 4 0 28.09.2011 17:24
QList< QList<int> > Guest Третий архив вопросов и ответов 0 28.09.2011 16:32



© www.otvetnemail.ru - Форум вопросов и ответов.