类模板
来源:互联网 发布:南京录音棚淘宝 编辑:程序博客网 时间:2024/06/06 09:30
1.写一个 CMyostream_iterator 模板, 使之能和 ostream_iterator 模板达到一样的效果
#include <iostream>#include <string>#include <vector>using namespace std;// 在此处补充你的代码template<class T>class CMyostream_iterator:public iterator<output_iterator_tag,T>{private: ostream &o; const char* s;public: CMyostream_iterator(ostream & output,const char* sz):o(output),s(sz){} void operator++(){}; void operator=(const T& val){o<<val<<s;} CMyostream_iterator &operator*(){return *this;}};int main(){ int a[]={1,2,3,4,5}; CMyostream_iterator<int> output(cout,"*"); vector<int> v(a,a+5); copy(v.begin(),v.end(),output); return 0;}
执行效果:
2.写一个CMyistream_iterator 模板,使之能和 istream_iterator 模板达到一样的效果
template <class T>class CMyistream_iterator:public iterator<input_iterator_tag,T>{private: T a; istream &is;public: CMyistream_iterator(istream &iss):is(iss){is>>a;} void operator++(int) { is>>a; } T operator*(){return a;}};
测试代码:
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;}测试结果:
来自北京大学MOOC课件
0 0
- 函数模板、类模板
- 模板 - 类模板
- 模板函数,模板类
- 模板的模板类
- 类模板(函数模板)
- 模板之---类模板
- C++模板:模板类
- 函数模板 类模板
- 函数模板、类模板
- C++模板学习(函数模板+类模板)
- 模板——函数模板、类模板
- 模板 Templates 模板函数 模板类
- C++模板(类模板、函数模板)
- 模板之类模板(数组类模板)
- 类模板
- 类模板
- 类模板
- 类模板
- freeradius 中配置eap-peap
- 1009. 说反话
- 淄博手机吸费代理 揭秘吸费电话 轻松赚钱
- erlang的日志库 A logging framework for Erlang/OTP
- 深圳真的电话吸费 手机吸费代理 电话群呼器
- 类模板
- 广州供应加值电话 哪有电话吸费 日入600
- 万年历_二级指针(存在部分bug以及不完善之处)
- uva11375火柴递推之多状态转移递推
- JAVA基础——正则表达式、枚举
- qcomm boot [2]
- iframe中子页面如何接收父页面所接受的参数
- gauss 2
- DEVICE_ATTR的使用