![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| zss |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 708 Регистрация: 17.6.2004 Репутация: 1 Всего: 2 |
есть массив байт фиксированного размера N.
Для удобной работы я использовал вектор
но приходится работать и с читыми массивами, что приводит к постоянному преобразованию unsigned char[] <--> std::vector<unsigned char>. Кроме того у типа MyBuffer нет проберки на корректность границ. Но с другой стороны хотелось бы с новым типом работать как с вектором Решил немного облегчить себе жизнь. Что проще сделать 1. Немного подправить класс std::vector 2. Реализовать собственный с проверками размером, функциональностью std::vector (правда не совсем понятно как ее целиком перенести), и с оператором преобразования типа Тоесть хочется прозрачно работать с новым типом как с std::vector так и неавно преобразовывать его в массив байт и обратно. |
|||
|
||||
| Daevaorn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: 51 Всего: 70 |
||||
|
||||
| zss |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 708 Регистрация: 17.6.2004 Репутация: 1 Всего: 2 |
не - вектор подходит более я имею ввиду при создании вектора я могу создать его любого размера. А нужно гарантировать размерность = N
проблемма не в этом, а в том, что из чистого массива нужно постоянно преобразовывать в вектор для того чтобы использовать его функциональность. Хотелось бы еще избавиться от явных преобразований в псевдокоде что-то вроде
|
||||
|
|||||
| Daevaorn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: 51 Всего: 70 |
Тогда не очень понятно зачем тебе вообще вектор, если он у тебя имеет статический размер. Простой boost::shared_array тогда, как мне кажется, может тебе помочь. И проблем с конвертацией нет
|
|||
|
||||
| zss |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 708 Регистрация: 17.6.2004 Репутация: 1 Всего: 2 |
для использования его функционалности - сравнения, хранени в контейнерах и т.д.
например... |
||||
|
|||||
| 88andrey |
|
||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 21.4.2007 Репутация: нет Всего: нет |
Можно узнать, если создать
то как выдедять память
или
|
||||||
|
|||||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
||||
|
||||
| dizzy1984 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 675 Регистрация: 15.2.2007 Репутация: 3 Всего: 25 |
Не имеет значения.
Разница сводится к тому будет ли приводится тип указателя, возвращаемый оператором new Это сообщение отредактировал(а) dizzy1984 - 24.4.2007, 18:08 |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |