C++ стандартные/фактические обертки алгоритма STL

Есть ли любой стандартный/фактический стандарт (повышение) обертки вокруг стандартных алгоритмов, которые работают с определением контейнеров, начинаются и заканчиваются. Позвольте мне показать Вам, что я имею в виду с кодом:

// instead of specifying begin and end
std::copy(vector.begin(), vector.end(), output);
// write as
xxx::copy(vector, output);

Я знаю, что это может быть записано легко, но я ищу именно что-то повсеместное.Спасибо.

8
задан Anycorn 1 February 2010 в 19:44
поделиться

4 ответа

Есть расширение библиотеки Boost Range, называемое RangeEx, которое содержит обёртки диапазона для всех stl алгоритмов, плюс несколько новых.

Недавно оно было принято в Boost, и поэтому в текущем "официальном" релизе (1.41) его еще нет. Пока это не изменится, вы можете скачать последнюю версию из Boost Vault.

Не знаю, станет ли это когда-нибудь частью стандарта C++, но тот факт, что он находится в Boost, означает, что это будет де-факто стандарт.

8
ответ дан 5 December 2019 в 15:23
поделиться

Единственный случай, когда я видел нечто подобное - это алгоритмы, основанные на библиотеке boost::range, но даже они на самом деле не модифицируют стандартные алгоритмы, такие как std::copy или std::remove_if - данный алгоритм необходимо написать, чтобы воспользоваться преимуществами такой обертки диапазона.

Для примера смотрите библиотеку Boost String Algorithms.

1
ответ дан 5 December 2019 в 15:23
поделиться

Следующий стандарт (надеюсь!) изменит это. А пока посмотрите на Boost.Range и его различные варианты использования, хотя я не знаком с интерфейсом к стандартным алгоритмам.

2
ответ дан 5 December 2019 в 15:23
поделиться

Я добавлю свой собственный поиск: Adobe Source Bianceies (Anythx от Boost Suredsedes Algoritts Part) ASL

0
ответ дан 5 December 2019 в 15:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: