![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| SaDFromSpb |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 263 Регистрация: 5.4.2006 Где: Санкт-Петербург Репутация: 3 Всего: 3 |
Требуется:
Такую штуку спроектировали и написали мы с напарником. Причем реализовали не одномерные, а двухмерные массивы. Идея в том, чтобы для функций, принимающих на вход контейнер, было по-боку, работают ли они с независимым контейнером, или же с частью более большего (подматрицей в случае 2Д). Вообще я настаивал на том, что для "ссылочного" объекта и объекта, который действительно содержит сами данные, нужно заводить разные типы, чтобы избежать путаницы, но переубедить его не удалось. Стоит задача обобщить это решение в виде темплэйта и запихнуть в библиотеку. Возник вопрос: Существуют ли механизмы в популярных библиотеках (в том же бусте), чтобы реализовать нечто подобное? В std есть некоторая аналогия - valarray. Там можно задавать различные срезы, но при работе со срезкой всегда происходит копирование. Это сообщение отредактировал(а) SaDFromSpb - 16.10.2008, 19:09 -------------------- "За исключением части, касающейся потоков, библиотека Loki написана на стандартном языке С++. Увы, это означает, что многие современные компиляторы не смогут работать с ней в полном объеме." (А. Александреску. Modern C++ design. 2001) |
|||
|
||||
| J0ker |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 986 Регистрация: 17.9.2008 Репутация: 4 Всего: 14 |
в вашем случае возможно оптимальный вариант - данные должны существовать отдельно от контейнеров, а контейнеры должны содержать умные указатели на данные.
|
|||
|
||||
| maxim1000 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 17 Всего: 110 |
можно попробовать выделить объект "окно" и пусть все алгоритмы уже с ним работают
а копировать только тогда, когда контейнер инициализируется окном это получится что-то типа объединения пары итераторов vector.begin() и vector.end() (ну и любой дргуой валидной пары) в один объект -------------------- qqq |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |