Лекция: Обычно представляются массивами.

LASCII

· встроенные в Turbo Pascal (макс. размен 255 фиксирован)

· короткие в Delphi

· C++

· иногда короткие локально, а длинные в куче

ASCIIZ

· C

 

Как хранилась в турбо паскале. По умолчанию там все с 1 начинается. Но строки были с нулевого битика.

 

Где и как?

Используются многими современными объектно — ориентированными системами, такими как .NET, Java, Python и т.д.

Представляют собой объекты, инкапсулирующие массив символов, но не дающие его изменять.

 

Преимущества и недостатки.

Очень быстро копируются, т.к. копируются только ссылки, одинаковые строки могут храниться в одной и той же памяти.

При любом изменении строки приходится создавать новый объект с новой строкой.

Для конкатенации длинных строк принято использовать специальные объекты класса StringBuffer (Java) или StringBuilder (.NET), реализующие изменяемые строки.

Экономия.

Разные объекты строкового тип могут ссылаться на фрагменты массивов (указывать в середину и хранить небольшое значение длины). Это требует аккуратного управления выделением памяти и возможности программирования на уровне C.

.NET иногда делает подобные оптимизации.

 

Строки также можно представлять в виде списков. Это можно рассмотреть на пример Haskell.

· Ленивость потенциально позволяет работать с бесконечными строками, например, с потоками текста.

· Преимущества неизменяемых строк, в т.ч. хвост строки без копирования.( не копируем, а берем сразу)

· Скорость доступа к отдельным символам сильно зависит от того, как система оптимизирует работу со списками.

· Конкатенация совсем не быстрая.

 

еще рефераты
Еще работы по информатике