• 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;
    }
  • 相关阅读:
    HDU 1097 a hard puzzle
    HDU 4588 Count The Carries
    不想用锐捷怎么办?锐捷出问题|锐捷不能用怎么办?用menohust代替吧
    线段树及其变种的相关资料(不定期更新)
    UVa 10075
    UVa 1301
    UVa 10256
    UVa 1453
    计算几何相关资料+题目推荐(不定期补充)
    UVa 11524
  • 原文地址:https://www.cnblogs.com/xiximayou/p/12114720.html
Copyright © 2020-2023  润新知