zoukankan      html  css  js  c++  java
  • 泛型算法(九)之替换算法

    1、replace(ForwardIterator first, ForwardIterator last, const T& old_value, const T& new_value):把序列中为给定值的元素替换为新值

        std::vector<int> c;
        c.reserve(10);
        //向c中添加元素
        for (int i = 0; i < 10; i++)
        {
            c.push_back(i);
        }
        //把序列c中值等于5的元素替换成100
        std::replace(c.begin(), c.end(), 5, 100);
        //输出c
        for (auto var : c)
        {
            std::cout << var << ",";
        }
        //打印结果:0,1,2,3,4,100,6,7,8,9,

    2、replace_if(ForwardIterator first, ForwardIterator last, UnaryPredicate pred, const T& new_value):把序列中满足给定谓词pred的元素替换为新值

        std::vector<int> c;
        c.reserve(10);
        //向c中添加元素
        for (int i = 0; i < 10; i++)
        {
            c.push_back(i);
        }
        //把序列c中值大于5的元素替换成100
        std::replace_if(c.begin(), c.end(), [](int element){
            return element > 5;
        }, 100);
        //输出c
        for (auto var : c)
        {
            std::cout << var << ",";
        }
        //打印结果:0,1,2,3,4,5,100,100,100,100,

    3、replace_copy(InputIterator first, InputIterator last, OutputIterator result, const T& old_value, const T& new_value)复制序列,对于等于老值的元素复制时使用新值

        std::vector<int> c;
        std::vector<int> result;
        c.reserve(10);
        result.resize(10);
        //向c中添加元素
        for (int i = 0; i < 10; i++)
        {
            c.push_back(i);
        }
        //复制c到result中,对于c中等于5的元素在复制时用100代替
        std::replace_copy(c.begin(), c.end(), result.begin(), 5, 100);
        //输出result
        for (auto var : result)
        {
            std::cout << var << ",";
        }
        //打印结果:0,1,2,3,4,100,6,7,8,9,

    4、replace_copy_if(InputIterator first, InputIterator last, OutputIterator result, UnaryPredicate pred, const T& new_value):复制序列,对于满足给定谓词pred的元素复制新值

        std::vector<int> c;
        std::vector<int> result;
        c.reserve(10);
        result.resize(10);
        //向c中添加元素
        for (int i = 0; i < 10; i++)
        {
            c.push_back(i);
        }
        //复制c到result中,对于c中大于5的元素在复制时用100代替
        std::replace_copy_if(c.begin(), c.end(), result.begin(), [](int element){
            return element > 5;
        }, 100);
        //输出result
        for (auto var : result)
        {
            std::cout << var << ",";
        }
        //打印结果:0,1,2,3,4,5,100,100,100,100,
  • 相关阅读:
    win7 64位操作系统下使用OFFICE2007 导入表格报错 未在本地计算机上注册 Microsoft.ACE.OLEDB.12.0
    armxilinxeabigcc 不是内部或外部命令,也不是可运行的程序
    上位机 串口 通信 协议
    ZYNQ 调试遇到的种种问题汇总[转帖]
    ZedBoard 安装 Ubuntu11.04
    What the difference between .ipa and .app
    How to create a .ipa file for ios app?
    获取IOS客户端系统版本号
    ios软件支持双语(本地化、国际化)
    objectivec中判断对象是否属于某个类的方法
  • 原文地址:https://www.cnblogs.com/dongerlei/p/5142065.html
Copyright © 2011-2022 走看看