zoukankan      html  css  js  c++  java
  • c++STL之常用拷贝和替换算法

    copy:容器中指定元素拷贝到另一容器中

    replace:将容器内指定范围内的旧元素改为新元素

    replace_if:容器内指定范围为满足条件的元素替换为新元素

    swap:互换两个容器的元素

    1.copy

    #include<iostream>
    using namespace std;
    #include <vector>
    #include <algorithm>
    
    //常用拷贝和替换算法 copy
    void myPrint(int val)
    {
        cout << val << " ";
    }
    
    void test01()
    {
        vector<int>v1;
        for (int i = 0; i < 10; i++)
        {
            v1.push_back(i);
        }
    
        vector<int>v2;
        v2.resize(v1.size());
        copy(v1.begin(), v1.end(), v2.begin());
    
        for_each(v2.begin(), v2.end(), myPrint);
        cout << endl;
    }
    
    int main() {
    
        test01();
    
        system("pause");
    
        return 0;
    }

    2.replace

    #include<iostream>
    using namespace std;
    #include <vector>
    #include<algorithm>
    
    class MyPrint
    {
    public:
        void operator()(int val)
        {
            cout << val << " ";
        }
    };
    
    //常用拷贝和替换算法 replace
    void test01()
    {
    
        vector<int>v;
        v.push_back(20);
        v.push_back(30);
        v.push_back(50);
        v.push_back(30);
        v.push_back(40);
        v.push_back(20);
        v.push_back(10);
        v.push_back(20);
    
        cout << "替换前:" << endl;
        for_each(v.begin(), v.end(), MyPrint());
        cout << endl;
    
    
        //将20 替换 2000
        replace(v.begin(), v.end(), 20, 2000);
        cout << "替换后:" << endl;
        for_each(v.begin(), v.end(), MyPrint());
        cout << endl;
    }
    
    int main() {
    
        test01();
    
        system("pause");
    
        return 0;
    }

    3.replace_if

    #include<iostream>
    using namespace std;
    #include <vector>
    #include <algorithm>
    
    class MyPrint
    {
    public:
        void operator()(int val)
        {    
            cout << val << " ";
        }
    };
    
    class Greater30
    {
    public:
        bool operator()(int val)
        {
            return val >= 30;
        }
    };
    
    //常用拷贝和替换算法 replace_if
    void test01()
    {
        vector<int>v;
        v.push_back(10);
        v.push_back(40);
        v.push_back(20);
        v.push_back(40);
        v.push_back(30);
        v.push_back(50);
        v.push_back(20);
        v.push_back(30);
    
        cout << "替换前: " << endl;
        for_each(v.begin(), v.end(), MyPrint());
        cout << endl;
    
        //将大于等于30  替换为 3000
        replace_if(v.begin(), v.end(), Greater30(),3000);
        cout << "替换后: " << endl;
        for_each(v.begin(), v.end(), MyPrint());
        cout << endl;
    
    }
    
    int main() {
    
        test01();
    
        system("pause");
    
        return 0;
    }

    4.swap

    #include<iostream>
    using namespace std;
    #include <vector>
    #include <algorithm>
    
    //常用拷贝和替换算法 swap
    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.push_back(i+100);
        }
    
        cout << "交换前: " << endl;
        for_each(v1.begin(), v1.end(), myPrint);
        cout << endl;
        for_each(v2.begin(), v2.end(), myPrint);
        cout << endl;
    
        cout << "-----------------" << endl;
        cout << "交换后: " << endl;
    
        swap(v1, v2);
    
        for_each(v1.begin(), v1.end(), myPrint);
        cout << endl;
        for_each(v2.begin(), v2.end(), myPrint);
        cout << endl;
    
    }
    
    int main() {
    
        test01();
    
        system("pause");
    
        return 0;
    }
  • 相关阅读:
    python 的基础 学习 第六天 基础数据类型的操作方法 字典
    python 的基础 学习 第五天 基础数据类型的操作方法
    python 的基础 学习 第四天 基础数据类型
    ASP.NET MVC 入门8、ModelState与数据验证
    ASP.NET MVC 入门7、Hellper与数据的提交与绑定
    ASP.NET MVC 入门6、TempData
    ASP.NET MVC 入门5、View与ViewData
    ASP.NET MVC 入门4、Controller与Action
    ASP.NET MVC 入门3、Routing
    ASP.NET MVC 入门2、项目的目录结构与核心的DLL
  • 原文地址:https://www.cnblogs.com/xiximayou/p/12114778.html
Copyright © 2011-2022 走看看