Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

replaced_if

Boost , Chapter 1. Range 2.0 , Reference

Boost C++ LibrariesHomeLibrariesPeopleFAQMore

PrevUpHomeNext

Синтаксис

Код

Труба

<rng| boost::adaptors::replaced_if(pred, new_value)>

Функция

<boost::adaptors::replace_if(rng, pred, new_value)>

  • Предварительное условие:
    • Диапазон<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,


PrevUpHomeNext

Статья replaced_if раздела Chapter 1. Range 2.0 Reference может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Reference ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-20 05:05:26/0.0035579204559326/0