Форум вопросов и ответов

Форум вопросов и ответов (https://www.otvetnemail.ru/)
-   Новый архив 3 (https://www.otvetnemail.ru/novyj-arhiv-3-813/)
-   -   Реализация QList (https://www.otvetnemail.ru/novyj-arhiv-3-813/realizaciya-qlist-259934/)

Guest 28.09.2011 18:56

Реализация QList
 
В Ассистанте на тему работу 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 типов второй оказывается быстрее первого?


Часовой пояс GMT, время: 10:15.


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