|
replaced_ifBoost , Chapter 1. Range 2.0 , Reference
- Предварительное условие:
- Диапазон<
value_type>конвертируется в тип аргумента<pred>. - <
new_value>—<value_type>— [<value_type>], [<value_type>] — [[<value_type>].
- Постусловия:Для всех элементов<
x>в возвращенном диапазоне значение<x>равно значению<pred(y)?new_value:
y>, где<y>является соответствующим элементом в исходном диапазоне. - Категория диапазона:Одиночный проход
- Тип возврата диапазона:<
boost::replaced_if_range<decltype(rng)>> - Возвращенная категория:Категория:<
rng>.
#include <boost/range/adaptor/replaced_if.hpp>
#include <boost/range/algorithm/copy.hpp>
#include <boost/assign.hpp>
#include <iterator>
#include <iostream>
#include <vector>
struct is_even
{
bool operator()(int x) const { return x % 2 == 0; }
};
int main(int argc, const char* argv[])
{
using namespace boost::adaptors;
using namespace boost::assign;
std::vector<int> input;
input += 1,2,3,4,5,6,7,8,9;
boost::copy(
input | replaced_if(is_even(), 10),
std::ostream_iterator<int>(std::cout, ","));
return 0;
}
Это позволит получить результат: 1,10,3,10,5,10,7,10,9,
Статья replaced_if раздела Chapter 1. Range 2.0 Reference может быть полезна для разработчиков на c++ и boost.
:: Главная :: Reference ::
|
|