Как лучше реализовать внутренний буффер (массив unsigned char) класса?
Требуемые операции: добавление в конец, извлечение из начала, удаление элементов из начала, возвращение указателя на данные (как std::string::c_str() ). Можно и свое написать, но может есть практичный контейнер для этого?
Интересуют только средства стандартной библиотеки.
Здравствуйте, Страж, Вы писали:
С>Как лучше реализовать внутренний буффер (массив unsigned char) класса? С>Требуемые операции: добавление в конец, извлечение из начала, удаление элементов из начала,
Для этой цели подойдут deque и list
С>возвращение указателя на данные (как std::string::c_str() ).
Это умеет только vector.
Вышеперчисленные операции он тоже умеет, но удаление из начала будет дорогим. Хотя если данных не очень много — для unsigned char все может быть достаточно резво.
С>Можно и свое написать, но может есть практичный контейнер для этого? С>Интересуют только средства стандартной библиотеки. С>Спасибо
В общем я бы попробовал для начала вектор, а там посмотреть, что на это скажет профайлер.
Здравствуйте, Страж, Вы писали:
С>Как лучше реализовать внутренний буффер (массив unsigned char) класса? С>Требуемые операции: добавление в конец, извлечение из начала, удаление элементов из начала, возвращение указателя на данные (как std::string::c_str() ). Можно и свое написать, но может есть практичный контейнер для этого?
С>Интересуют только средства стандартной библиотеки.
С>Спасибо
strstream или stringstream не подойдёт?
Загляните в <sstream>, думаю это то что вам надо!!!
Теоретически нет разницы между теорией и практикой, но на практике она есть
Здравствуйте, Страж, Вы писали:
С>Как лучше реализовать внутренний буффер (массив unsigned char) класса? С>Требуемые операции: добавление в конец, извлечение из начала, удаление элементов из начала, возвращение указателя на данные (как std::string::c_str() ). Можно и свое написать, но может есть практичный контейнер для этого?
С>Интересуют только средства стандартной библиотеки.
С>Спасибо