• POJ C++程序设计 编程题#2 编程作业—STL2


    编程题#2

    来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩。)

    注意: 总时间限制: 1000ms 内存限制: 65536kB

     

    描述

    写一个自己的 CMyistream_iterator 模板,使之能和 istream_iterator 模板达到一样的效果,即:

    输入:

    79 90 20 hello me

    输出:

    79

    79,90,20

    hello,me

    #include <iostream>
    #include <string>
    using namespace std;
    // 在此处补充你的代码
    int main()
    {
        CMyistream_iterator<int> inputInt(cin);
        int n1,n2,n3;
        n1 = * inputInt; //读入 n1
        int tmp = * inputInt;
        cout << tmp << endl;
        inputInt ++;
        n2 = * inputInt; //读入 n2
        inputInt ++;
        n3 = * inputInt; //读入 n3
        cout << n1 << "," << n2<< "," << n3 << endl;
        CMyistream_iterator<string> inputStr(cin);
        string s1,s2;
        s1 = * inputStr;
        inputStr ++;
        s2 = * inputStr;
        cout << s1 << "," << s2 << endl;
        return 0;
    }

     

    输入

    79 90 20 hello me

     

    输出

    79

    79,90,20

    hello,me

     

    样例输入

    79 90 20 hello me

     

    样例输出

    79
    79,90,20
    hello,me

     

    提示

    istream_iterator模版使用说明:

    其构造函数执行过程中就会要求输入,然后每次执行++,则读取输入流中的下一个项目,执行 * 则返回上次从输入流中读取的项目。例如,下面程序运行时,就会等待用户输入数据,输入数据后程序才会结束:

    #include <iostream>
    #include <iterator>
    using namespace std;
    int main() {
            istream_iterator<int> inputInt(cin);
            return 0;
    }

    下面程序运行时,如果输入 12 34 程序输出结果是: 12,12

    #include <iostream>
    #include <iterator>
    using namespace std;
    int main()
    {
            istream_iterator<int> inputInt(cin);
            cout << * inputInt << "," << * inputInt << endl;
            return 0;
    }

    下面程序运行时,如果输入 12 34 56程序输出结果是: 12,56

    #include <iostream>
    #include <iterator>
    using namespace std;
    int main()
    {
            istream_iterator<int> inputInt(cin);
            cout << * inputInt << "," ;
            inputInt ++;
            inputInt ++;
            cout << * inputInt;
            return 0;
    }

    #include <iostream>
    #include <string>
    using namespace std;
    // 在此处补充你的代码
    template <class T>
    class CMyistream_iterator
    {
    public:
        CMyistream_iterator(istream &input):is(input) {
            is>>a;
        }
        T operator *() {
            return a;
        }
        void operator ++(int) {
            is>>a;
        }
    private:
        T a;
        istream & is;
    };
    int main()
    {
        CMyistream_iterator<int> inputInt(cin);
        int n1,n2,n3;
        n1 = * inputInt; //读入 n1
        int tmp = * inputInt;
        cout << tmp << endl;
        inputInt ++;
        n2 = * inputInt; //读入 n2
        inputInt ++;
        n3 = * inputInt; //读入 n3
        cout << n1 << "," << n2<< "," << n3 << endl;
        CMyistream_iterator<string> inputStr(cin);
        string s1,s2;
        s1 = * inputStr;
        inputStr ++;
        s2 = * inputStr;
        cout << s1 << "," << s2 << endl;
        return 0;
    }
  • 相关阅读:
    Android 五大布局
    jdk6的安装以及环境变量的设置
    PLSQL Developer图形化窗口创建数据库全过程
    未能加载文件或程序集“Oracle.DataAccess, " 64位OS运行32位程序的问题
    Android SDK 无法连接到GOOGLE 下载安装包
    Android开发之旅:环境搭建
    Android开发把项目打包成apk
    在 VMware Workstation 虚拟机中创建共享文件夹的步骤〔图解〕
    谈谈对于企业级系统架构的理解
    C#图片处理之: 获取数码相片的EXIF信息
  • 原文地址:https://www.cnblogs.com/dagon/p/4791188.html
Copyright © 2020-2023  润新知