Есть ли у кого-нибудь оболочка для алгоритмов STL, принимающая один контейнер вместо двух итераторов в качестве первого аргумента?

#c #algorithm #stl #iterator #wrapper

#c #алгоритм #stl #итератор #оболочка

Вопрос:

Кто-нибудь знает о файле заголовка или потратил время на то, чтобы обернуть все алгоритмы самостоятельно?

Ie

 std::fill(iterator start, iterator stop, value_type val) ->
xxx::fill(containeramp; c, value_type val)
  

Обновить:
Кажется, boost range делает именно то, что я хочу.

Комментарии:

1. Потому что мне лень писать это самому

2. Но почему? Что такого сложного в написании begin и end?

3. Занимает горизонтальное пространство, труднее читается, требует времени, и я устал от этого, в 99% случаев я все равно использую весь диапазон.

4. @Nikko: не весь Boost, поскольку Boost . Диапазон включает версии алгоритмов, которые работают с диапазонами, а контейнеры являются диапазонами.

5. Хорошее применение для такого рода вещей — std::copy для копирования из одного временного контейнера в другой. Например, IMO xxx::copy( get_container(), target_container) аккуратнее, чем auto temp = get_container(); std::copy(temp.begin(),temp.end(),target_container); .

Ответ №1: