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

    需要引入头文件#include<algorithm>

    1.for_each

    #include<iostream>
    using namespace std;
    #include <vector>
    #include <algorithm>
    
    class MyPrint {
    public:
        void operator()(int val) const{
            cout << val << " ";
        }    
    };
    
    void printVector(int val) {
        cout << val << " ";
    }
    
    void test() {
        vector<int> v1;
        for (int i = 0; i < 10; i++)
        {
            v1.push_back(i);
        }
        //利用普通函数
        for_each(v1.begin(), v1.end(), printVector);
        cout << endl;
        //利用仿函数
        for_each(v1.begin(), v1.end(), MyPrint());
        cout << endl;
    }
    
    
    int main() {
        test();
        system("pause");
        return 0;
    }

    2.transform:将容器搬运到另一个容器中

    #include<iostream>
    using namespace std;
    #include <vector>
    #include <algorithm>
    
    class Transform {
    public:
        int operator()(int val) const{
            //这里可以对val进行一些判断
            return val;
        }    
    };
    class MyPrint {
    public:
        void operator()(int val) const {
            cout << val << " ";
        }
    };
    
    void test() {
        vector<int> v1;
        for (int i = 0; i < 10; i++)
        {
            v1.push_back(i);
        }
        vector<int> v2;
        //目标容器需要先开辟空间
        v2.resize(v1.size());
        transform(v1.begin(), v1.end(), v2.begin(), Transform());
        for_each(v2.begin(), v2.end(), MyPrint());
        cout << endl;
    }
    
    
    int main() {
        test();
        system("pause");
        return 0;
    }
  • 相关阅读:
    luogu P3398 仓鼠找sugar
    关于lca
    luogu P3374 【模板】树状数组 1
    [NOIp2013普及组]车站分级
    [HDU1598]find the most comfortable road
    [NOI2015]程序自动分析
    [USACO08DEC]Secret Message
    [洛谷3375]【模板】KMP字符串匹配
    [ZJOI2010]网络扩容
    [SCOI2007]修车
  • 原文地址:https://www.cnblogs.com/xiximayou/p/12114720.html
Copyright © 2011-2022 走看看