| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > тип unsigned char[N] |
| Автор: zss 22.4.2007, 22:40 | ||
| есть массив байт фиксированного размера N. Для удобной работы я использовал вектор
но приходится работать и с читыми массивами, что приводит к постоянному преобразованию unsigned char[] <--> std::vector<unsigned char>. Кроме того у типа MyBuffer нет проберки на корректность границ. Но с другой стороны хотелось бы с новым типом работать как с вектором Решил немного облегчить себе жизнь. Что проще сделать 1. Немного подправить класс std::vector 2. Реализовать собственный с проверками размером, функциональностью std::vector (правда не совсем понятно как ее целиком перенести), и с оператором преобразования типа Тоесть хочется прозрачно работать с новым типом как с std::vector так и неавно преобразовывать его в массив байт и обратно. |
| Автор: zss 22.4.2007, 22:48 | ||||
не - вектор подходит более я имею ввиду при создании вектора я могу создать его любого размера. А нужно гарантировать размерность = N
проблемма не в этом, а в том, что из чистого массива нужно постоянно преобразовывать в вектор для того чтобы использовать его функциональность. Хотелось бы еще избавиться от явных преобразований в псевдокоде что-то вроде
|
| Автор: Daevaorn 22.4.2007, 22:52 |
| Тогда не очень понятно зачем тебе вообще вектор, если он у тебя имеет статический размер. Простой boost::shared_array тогда, как мне кажется, может тебе помочь. И проблем с конвертацией нет |
| Автор: zss 22.4.2007, 22:53 | ||||
для использования его функционалности - сравнения, хранени в контейнерах и т.д.
например... |
| Автор: 88andrey 23.4.2007, 10:09 | ||||||
Можно узнать, если создать
то как выдедять память
или
|
| Автор: JackYF 23.4.2007, 18:03 |
| Логично, что |
| Автор: dizzy1984 24.4.2007, 18:06 |
| Не имеет значения. Разница сводится к тому будет ли приводится тип указателя, возвращаемый оператором new |