![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#21 | |
Регистрация: 05.05.2009
Сообщений: 9
|
![]() Цитата:
![]() |
|
![]() |
![]() |
![]() |
#22 | |
Форумчанин
Регистрация: 01.05.2009
Сообщений: 110
|
![]() Цитата:
Те же операции с последовательности нужно проходить итератором. Причём поток данных тоже должен быть на него завязан. Такие алгоритмы как вычисления хешей должны уметь их вычислять в любом куске формируемых данных. Хоть задом наперёд, хоть особо извращённым способом прохождения. Если код кажется медленным, надо объявить его встроенным. Есть ещё такое мнение, что объектно-ориентированный код медленнее, хотя другие говорят, что современные компиляторы строят равные по скорости приложения. Пожалуй надо ввести ещё пару тысяч понятий, а то арифметика это почти что ничто, на фоне стандартных библиотек и потому мало что понятно. |
|
![]() |
![]() |
![]() |
#23 | ||
Регистрация: 05.05.2009
Сообщений: 9
|
![]() Цитата:
Цитата:
![]() |
||
![]() |
![]() |
![]() |
#24 | |
Eclipse Foundation
Старожил
Регистрация: 19.09.2007
Сообщений: 2,604
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#25 | |
Регистрация: 05.05.2009
Сообщений: 9
|
![]()
Ну, зачем же по 2, разбивать по 2 есть смысл только когда сложение 2 "чисел" занимает очччень большое количество времени. К тому же количество ядер в существующих компутерах к сожалению ограничено, и разбивать проще всего поровну между ними, а не по 2.
Иногда можно и не выделять память под сумму частей а "портить" исходный массив. Цитата:
![]() ![]() |
|
![]() |
![]() |
![]() |
#26 |
Форумчанин
Регистрация: 01.05.2009
Сообщений: 110
|
![]() ![]() |
![]() |
![]() |
![]() |
#27 | |
Форумчанин
Регистрация: 01.05.2009
Сообщений: 110
|
![]()
Предположим есть понятие файл File, но что такое файл? Для начала определим чему же он принадлежит. А принадлежит он файловой системе. Но что же такое файловая система?
Цитата:
Файл прежде всего понятие. Является ли содержимое файла - файлом? Нет не является, иначе бы оно называлось файлом, а не содержимым файла. Таким образом гибридный подход применяемый в стандартных библиотеках, в том числе и использующихся на C++ неподоходит. Учитывая кроссплатформенность решений необходимо уметь определять не только используемую файловую систему, но и платформу, а также операционную систему на которой запущена программа. Таким образом файл это сущность независящая от его атрибутов, одним из которых можно считать его содержимое. Помимо файла существуют папки (Folders), так же известные как директории (Directory). Вопрос папки они или директории очень важен, так как директории по смыслу являются направляющими и представляют весь путь к директории или файлу, а вот папка она как сущность хранящая что-то внутри себя. |
|
![]() |
![]() |
![]() |
#28 |
Форумчанин
Регистрация: 01.05.2009
Сообщений: 110
|
![]()
Атрибуты принадлежащие файловой системе NTFS: Name, Archive, Compressed, Device, Directory, Encrypted, Hidden, Normal, NotContentIndexed, Offline, ReadOnly, ReparsePoint, SparseFile, System, Temporary.
Довольно странное распределение демонстрирует нам майкрософт. Name вероятно наследуется от строкового типа с ограниченным диапазоном символов ввода. А вот максимальная длина скорее всего зависит от полного пути ((Full)Path). Нужно ли любой строке ограниченный диапазон или не нужно надо ещё решить. А вот ISO 9660 трёх уровней говорит о том, что необходимо соблюдать некие ограничения. Плюс существуют и другие стандарты и расширения, такие как Joliet. Если отвлечься на содержимое, то оно тоже неоднозначно. Всё что про него можно сказать, так это то, что оно представляется последовательностью байт, то есть тот же Sequence. Любая последовательность может дробиться на минимальные элементы последовательности. По идее файл можно и на биты дробить если понадобится, это означает его неоднозначную природу. Таким образом мы имеем битово-байтовый неизменяющийся (unchangeable) блок данных (DataBlock). Хотя пока непонятно, стоит ли считать его противоположностью изменяющегося блока данных. |
![]() |
![]() |
![]() |
#29 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,087
|
![]()
Вообще-то в "стандартных библиотеках" нет никакого смешивания файлов и содержимого файлов. В общем случае есть набор функций:
- Открыть файл (по имени файла возвращает его дескриптор) - Закрыть файл ("закрывает" дескриптор файла) - Прочитать из файла (по указанному дескриптору читает данные файла) - Записать в файл (по указанному дескриптору записывает данные) ... Можно считать, что дескриптор - это и есть файл, а работаем мы с содержимым файла. Что тут не так? Где зависимость от конкретной файловой системы? Где путаница между файлом и его содержимым? ЗЫ. бит не адресуется, а потому все данные - это набор байт, как ни крути |
![]() |
![]() |
![]() |
#30 | |
Форумчанин
Регистрация: 01.05.2009
Сообщений: 110
|
![]() Цитата:
![]() А может я хочу рассматривать файл как набор символов в кодировке юникода по два байта на один символ или ещё как. Важно не то, как сделать ту или иную операцию на конкретной библиотеке, важно сформировать абстракции позволяющие делать весь спектр операций с минимальной сложностью. |
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
в поисках органайзера | crazy horse | Софт | 6 | 11.02.2008 16:56 |
Нахождение совершенных чисел. Паскаль | NikLik | Помощь студентам | 3 | 23.11.2007 22:19 |