zoukankan      html  css  js  c++  java
  • C++:transform用法

    摘自:http://blog.csdn.net/luyuncheng/article/details/8659179View Code

        /*//////////////////////////////// 
        template < class InputIterator, class OutputIterator, class UnaryOperator > 
          OutputIterator transform ( InputIterator first1,  // 源容器的起始地址 
                                    InputIterator last1,    // 源容器的终止地址 
                                    OutputIterator result,  // 目标容器的起始地址 
                                    UnaryOperator op );     // 函数指针 
        // typedef 目标容器元素类型 (*UnaryOperator)(源容器元素类型); 
         
        template < class InputIterator1, class InputIterator2, 
                   class OutputIterator, class BinaryOperator > 
          OutputIterator transform ( InputIterator1 first1,     // 源容器1的起始地址 
                                    InputIterator1 last1,       // 源容器1的终止地址 
                                    InputIterator2 first2,      // 源容器2的起始地址,元素个数与1相同 
                                    OutputIterator result,      // 目标容器的起始地址,元素个数与1相同 
                                    BinaryOperator binary_op ); // 函数指针 
        // typedef 目标容器元素类型 (*BinaryOperator)(源容器1元素类型,源容器2元素类型); 
        //*////////////////////////////////  
          
        #include <iostream>  
        #include <algorithm>  
        #include <vector>  
        #include <string>  
        using namespace std;  
          
        int op_increase (int i)  
        {  
            return i+1;   
        }  
          
        int op_sum (int i, int j)   
        {  
            return i+j;   
        }  
          
        int to_upper(int c)  
        {  
            if (islower(c))  
            {   
                return (c-32);   
            }  
          
            return c;  
        }  
          
        int to_lower(int c)  
        {  
            if (isupper(c))  
            {  
                return c+32;  
            }  
          
            return c;  
        }  
          
        int main () {  
            vector<int> first;  
            vector<int> second;  
            vector<int>::iterator it;  
              
            // set some values:  
            for (int i=1; i<6; i++) first.push_back (i*10); //  first: 10 20 30 40 50  
              
            ///将first容器的元素加1赋值给second容器  
            second.resize(first.size());        // allocate space !!!必须预先设置一个大小与first相同  
            transform (first.begin(), first.end(), second.begin(), op_increase); // second: 11 21 31 41 51  
            cout << "second contains:";  
            for (it=second.begin(); it!=second.end(); ++it)  
            {  
                cout << " " << *it;  
            }  
            cout << endl;  
            //*////////////////////////////////////////////  
              
            ///将first容器的元素与second容器的元素相加,并将得到的结果重新赋值给first  
            transform (first.begin(), first.end(), second.begin(), first.begin(), op_sum); //  first: 21 41 61 81 101  
            cout << "first contains:";  
            for (it=first.begin(); it!=first.end(); ++it)  
                cout << " " << *it;  
            cout << endl;  
            //*//////////////////////////////////////////////////////////////////////////  
          
            ///大小写转换/////////////////////////////////////  
            string strsrc("Hello, World!");  
            string strdest;  
            strdest.resize(strsrc.size());      // !!!必须预先设置一个大小与strsrc相同  
            transform(strsrc.begin(), strsrc.end(), strdest.begin(), to_upper); // 转换为大写  
            cout << strdest << endl;  
          
            transform(strsrc.begin(), strsrc.end(), strdest.begin(), to_lower); // 转换为小写  
            cout << strdest << endl;  
            //*/////////////////////////////////////////  
          
            return 0;  
        }  
  • 相关阅读:
    Swift入门篇-Hello World
    Swift入门篇-swift简介
    Minecraft 插件 world edit 的cs 命令
    搭建本地MAVEN NEXUS 服务
    MC java 远程调试 plugin 开发
    企业内部从零开始安装docker hadoop 提纲
    javascript 命令方式 测试例子
    ca des key crt scr
    JSF 抽象和实现例子 (函数和属性)
    form 上传 html 代码
  • 原文地址:https://www.cnblogs.com/KeenLeung/p/2965192.html
Copyright © 2011-2022 走看看