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;
    }
  • 相关阅读:
    WslRegisterDistribution failed with error: 0x80370102
    vscode C/C++ 语法检查
    ADO.NET 一(概述)
    线程三(Mutex)
    线程二(Monitor)
    线程一(lock)
    interface Part4(接口中的多态)
    interface Part3(实现:显示和隐式)
    interface Part2(定义接口)
    interface Part1(接口详解)
  • 原文地址:https://www.cnblogs.com/xiximayou/p/12114720.html
Copyright © 2011-2022 走看看