![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
The MPL Reference Manual: copy_ifBoost , ,
|
Front Page / Algorithms / Transformation Algorithms / copy_if |
template< typename Sequence , typename Pred , typename In = unspecified > struct copy_if { typedef unspecified type; };
Возвращает отфильтрованную копию исходной последовательности, содержащую элементы, удовлетворяющие предикатуPred.
[править]Примечание:Данная формулировка применяется к неинсертерной версии алгоритма. См. подразделСемантика экспрессиидля точного описания деталей алгоритма во всех случаях —
#include <boost/mpl/copy_if.hpp>
Parameter | Requirement | Description |
---|---|---|
Последовательность | Последовательность | Последовательность для копирования. |
Пред | УнариЛямбда-выражение | Условие копирования. |
В | Вставить | Вставка. |
Семантика выражения определяется только там, где она отличается от семантики выражения или не определена в. Обратимый алгоритм.
Для любойпередовой последовательностиs, унарноголямбда-выраженияпредиинсертерав:
typedef copy_if<s,pred,in>::type r;
Return type: | A type. |
---|---|
Semantics: | Equivalent to typedef lambda<pred>::type p; typedef lambda<in::operation>::type op; typedef fold< s , in::state , eval_if< apply_wrap1<p,_2> , apply_wrap2<op,_1,_2> , identity<_1> > >::type r; |
Точноразмер:: значениеприменениепред, и самое большееразмер:: значениеприменениев:: эксплуатация.
typedef copy_if< range_c<int,0,10> , less< _1, int_<5> > , back_inserter< vector<> > >::type result; BOOST_MPL_ASSERT_RELATION( size<result>::value, ==, 5 ); BOOST_MPL_ASSERT(( equal<result,range_c<int,0,5> > ));
Статья The MPL Reference Manual: copy_if раздела может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
:: Главная :: ::
реклама |