![]() |
|
|
![]()
|
|
| xbarmaglot |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 149 Регистрация: 28.8.2012 Репутация: нет Всего: нет |
Приходит очень большое количество пакетов. Пакет формируется один раз, а далее происходит
большое количество операций, связанных с перекладыванием его в различные контейнеры и посылка через сигналы. Причем сам блок данных не изменяется. Хотелось бы при этом один раз выделить память, а далее оперировать именно с этой областью памяти. На ум приходит лишь QSharedPointer<QByteArray>, но это усложняет использование stl/boost алгоритмов. Есть ли в QT альтернатива c возможностями вектора? |
|||
|
||||
| ss |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 133 Регистрация: 17.5.2007 Репутация: нет Всего: нет |
что-то темное в описании проблемы. Вектор, по сути, и есть массив в памяти. Выдели необходимый размер памяти под вектор vector.resize(n). Дальше работаешь как с массивом vector[i] = value, или как с памятью char * ptr = vector.data();
|
|||
|
||||
| math64 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 23 Всего: 72 |
ss, нужный размер памяти в начале работы обычно неизвестен, поэтому какое n передавать в vector.resize(n)?
xbarmaglot, раз используются алгоритмы stl/boost, лучше использовать контейнеры stl/boost. |
|||
|
||||
![]()
|
| Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |