Data: различия между версиями
Sergey (обсуждение | вклад) (Новая страница: «Виды данных в программе базовые - байт, слово, структ, массив, блок памяти контейнеры - ку...») |
Sergey (обсуждение | вклад) |
||
Строка 17: | Строка 17: | ||
вложенные (используемые) контексты | вложенные (используемые) контексты | ||
код, исполняемый в ответ на события или же для отработки внутренних процессов | код, исполняемый в ответ на события или же для отработки внутренних процессов | ||
+ | |||
+ | == лёгкие и тяжёлые типы == | ||
+ | |||
+ | Тип может поддерживать копирование, но в силу большого объёма занимать существенное время, или зависеть от записанного значения - строки, контейнеры. | ||
+ | |||
+ | Лёгкие типы - время копирования меньше или сопоставимо с временем копирования указателя. | ||
+ | |||
+ | Тяжёлые типы - время копирования превышает время копирования указателя. | ||
+ | |||
+ | В тяжёлых типах эффективнее работать с указателями на тип, а не подставлять его в шаблоны функций, копирующие и обменивающие значения (например сортировку) - использовать для этого промежуточный тип, хранящий указатель и проксирующий функции сравнения и перестановки. |
Версия 09:19, 15 августа 2022
Виды данных в программе
базовые - байт, слово, структ, массив, блок памяти
контейнеры - куча, список, дерево
сложные контейнеры для организации произвольных указателей должны использовать управляемые указатели, обнуляемые при удалении целевого объекта
прикладные типы - сложные типы с набором методов. Не могут взаимодействовать с ОС
контекст:
аватар - описывается в общем виде, при инстанциации привязывается к какому-то конкретному объекту - определённая вкладка браузера, некий внешний сервис, контроллер какого-то конкретно мотора. Использует сервисы ОС для подключения к своей точке назначения. модель - имитирует работу некого объекта. Может использоваться в качестве точки назначения для аватара. Может ограниченно взаимодействовать с ОС (например использовать таймер).
контекст содержит: переменные состояния точки входа реакции на события вложенные (используемые) контексты код, исполняемый в ответ на события или же для отработки внутренних процессов
лёгкие и тяжёлые типы
Тип может поддерживать копирование, но в силу большого объёма занимать существенное время, или зависеть от записанного значения - строки, контейнеры.
Лёгкие типы - время копирования меньше или сопоставимо с временем копирования указателя.
Тяжёлые типы - время копирования превышает время копирования указателя.
В тяжёлых типах эффективнее работать с указателями на тип, а не подставлять его в шаблоны функций, копирующие и обменивающие значения (например сортировку) - использовать для этого промежуточный тип, хранящий указатель и проксирующий функции сравнения и перестановки.