zoukankan      html  css  js  c++  java
  • 常用的遍历算法

    一、常用的遍历算法

    1、for_each

    2、transform

    transform(b1,e1,b2,op)      //把一个区间[b1,e1)内的数据经过(op)转化,放入以b2开头的第二个容器内

                                              //也就是复制+修改(变换),当然b2可以等于b1

    transform(b1,e1,b2,b3,op)   //把两个集合里的数据整合(op)到第三个集合,当然b3=b2=b1也可以

    注意:

        1、如果目标与源相同,transform()就和for_each()一样;

        2、如果想以某值替换符合规则的元素,应使用replace()算法。

    二、案例

    #define _CRT_SECURE_NO_WARNINGS
    #include <iostream>
    #include <vector>
    #include <algorithm>
    using namespace std;
    
    //transform 将一个容器的元素 搬运到 另一个容器中
    struct MyPlus
    {
        int operator()(int val)
        {
            return val + 100;
        }
    };
    void MyPrint(int val)
    {
        cout << val << " ";
    }
    void test01()
    {
        vector<int> v1;
        vector<int> v2;
    
        for (int i = 0;i < 10;i++)
        {
            v1.push_back(i);
        }
    
        v2.resize(v1.size());//开辟空间
    
        transform(v1.begin(), v1.end(), v2.begin(), MyPlus());
        for_each(v2.begin(), v2.end(), MyPrint);//100 101 102 103 104 105 106 107 108 109
        cout << endl;
    }
    
    int main(void)
    {
        test01();
        return 0;
    }
  • 相关阅读:
    【js】this=>>4种用法
    【js】接口实现代码
    【es6】object.is()&&==&&===
    js apply&&call
    【javascript=>>DOM】=>>Attribute与Property的区别
    Android ListView刷新问题
    Android EditText自动换行
    Android 状态栏隐藏 ( 全屏 )
    Android 取得手机屏幕大小
    Android中使用代码改变背景颜色
  • 原文地址:https://www.cnblogs.com/yuehouse/p/10120861.html
Copyright © 2011-2022 走看看