zoukankan      html  css  js  c++  java
  • c/c++:copy 和transform的使用

    #include <iostream>
    #include <vector>
    #include <algorithm>
    #include <iterator>
    #include <string>
    #include <sstream>
    #include <deque>
    
    using namespace std;
    
    int fun1(int value)
    {
        return value*2;
    }
    
    int fun2(int value1,int value2)
    {
        return value1+value2;
    }
    
    
    template<class T>
    class A
    {
    };
    
    template<>
    class A<string>
    {
        public:
        string operator() (const string & src)
        {
            string s=src;
            for(string::iterator it=s.begin();it!=s.end();it++)
                *it = (*it)+1;
            return s;
        }
    };
    
    int main()
    {
        int a[5]={1,2,3,4,5};
        vector<int > b(5,10);
        int c[5];
        copy(a,a+5,ostream_iterator<int>(cout,"|"));
        cout<<endl;
        copy(b.begin(),b.end(),ostream_iterator<int>(cout,"|"));
        cout<<endl;
        transform(a,a+5,c,fun1);
        copy(c,c+5,ostream_iterator<int>(cout,"|"));
        cout<<endl;
        transform(a,a+5,b.begin(),c,fun2);//注意,b 是向量,所以要用.begin()
        copy(c,c+5,ostream_iterator<int>(cout,"|"));
        cout<<endl;
    
        vector<string > v;
        vector<string > vresult;
        deque<string > v2result;
        v.push_back("aaa");
        v.push_back("bbb");
        v.push_back("ccc");
        v.push_back("ddd");
        transform(v.begin(),v.end(),back_inserter(vresult),A<string>());//back_inserter 将数据插入到参数的尾部,因为vector 不支持push_front
        transform(v.begin(),v.end(),front_inserter(v2result),A<string>());//不能直接写 .begin(),一定要用到front_inserter或back_
        copy(vresult.begin(),vresult.end(),ostream_iterator<string>(cout,"|"));
        cout<<endl;
        copy(v2result.begin(),v2result.end(),ostream_iterator<string>(cout,"|"));
        cout<<endl;
    
    
    
    
        return 0;
    }
  • 相关阅读:
    初学网络编程
    Python模块(三)(正则,re,模块与包)
    Python模块(二)(序列化)
    idea2020.2安装与破解
    部署-jenkins发布项目到linux环境
    部署-jenkins发布项目到windows环境
    部署-jenkins与gitlab结合使用
    部署-docker推送镜像到远程仓库
    部署-gitlab克隆地址踩坑
    部署-docker安装jenkins
  • 原文地址:https://www.cnblogs.com/Azhu/p/2586399.html
Copyright © 2011-2022 走看看