Для сбора и обработки двоичных потоков данных необходим двоичный класс строк.
Это по существу означает, что строка (или поток) может содержать произвольное количество элементов (двоичные данные, биты), которые могут представлять что угодно, и вы можете изменить их с помощью класса.
Эти потоки данных могут представлять что угодно: от данных изображения до содержимого объектов.
Вы можете делать с потоком все, что захотите (обычно это ограничивается реализацией). Например, вы можете загружать необработанные данные изображения в объект потока, а затем читать одиночные байты. Вы могли бы также написать одиночные символы для потока (или массива) и сохранить его как необработанные данные изображения. Элементарная строка/поток не ограничивает вас ни одной интерпретацией. Вместо этого фактическая реализация/интерфейс определяет эту часть.
Здесь автор также отметил, что это похоже на потоковое воспроизведение объекта или настойчивость объекта.
«Объект потоковой передачи» здесь означает передачу чего-либо. Например. отправка данных по сети или порту (например, использование в качестве буфера для отправки или получения данных).«Перенос объектов» означает сохранение чего-то (что позволяет сохранить его) даже в то время, когда ваша программа больше не работает (загрузка/сохранение).
По существу, почти любой поток, а также контейнеры, доступные в STL уже то, что автор рассматривает двоичную строку. Разница заключается только в группировке, например. вы можете получить доступ/прочитать/записать отдельные биты или просто байты/слова/что угодно?
Чтобы получить настоящий «бит-поток», вы можете просто использовать что-то простое, как std::vector<bool>
. Это позволяет вам сохранять логические значения, но вы можете также читать их как нечто иное (например, чтение их по блоку путем литья содержимого в массив целых чисел).
Но я бы сказал, что что-то простое, как std::stream
, будет даже лучше соответствовать описанию автора: его можно использовать для хранения постоянных данных, его можно использовать для передачи данных, и его можно использовать для хранения/загрузки данные в разных форматах/интерпретациях. Например, вы можете писать отдельные биты или байты, а затем читать их как целое число или даже строку.
Разве это не то, что 'fstream' уже есть? –
Ищите 'serialization' вместо' object streaming' – SomeWittyUsername
@CarlNorum: как fstream связан с сопротивлением объекта – venkysmarty