| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Контейнер с прозрачными поддиапазонами |
| Автор: SaDFromSpb 16.10.2008, 19:07 | ||
Требуется:
Такую штуку спроектировали и написали мы с напарником. Причем реализовали не одномерные, а двухмерные массивы. Идея в том, чтобы для функций, принимающих на вход контейнер, было по-боку, работают ли они с независимым контейнером, или же с частью более большего (подматрицей в случае 2Д). Вообще я настаивал на том, что для "ссылочного" объекта и объекта, который действительно содержит сами данные, нужно заводить разные типы, чтобы избежать путаницы, но переубедить его не удалось. Стоит задача обобщить это решение в виде темплэйта и запихнуть в библиотеку. Возник вопрос: Существуют ли механизмы в популярных библиотеках (в том же бусте), чтобы реализовать нечто подобное? В std есть некоторая аналогия - valarray. Там можно задавать различные срезы, но при работе со срезкой всегда происходит копирование. |
| Автор: J0ker 17.10.2008, 18:11 |
| в вашем случае возможно оптимальный вариант - данные должны существовать отдельно от контейнеров, а контейнеры должны содержать умные указатели на данные. |
| Автор: maxim1000 18.10.2008, 09:57 |
| можно попробовать выделить объект "окно" и пусть все алгоритмы уже с ним работают а копировать только тогда, когда контейнер инициализируется окном это получится что-то типа объединения пары итераторов vector.begin() и vector.end() (ну и любой дргуой валидной пары) в один объект |