C++编程(B)

Educn 1324 stringchar s1 stringunsigned char s2

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: buf; map<String<char>, int> m; while(cin>>buf) m[buf]++; } // 日文版本 int main() { String<Jchar> buf; map<String<Jchar>,int> m; while(cin>>buf) m[buf]++; } Beijing University of Posts & Telecommunications Beijing young@buptnet.edu.cn 示例 // 标准库提供了一个模板类basic_string,其中,string被定义为 basic_string<char>的同义词 typedef basic_string<char> string; int main() { string buf; map<string, int> m; while(cin>>buf) m[buf]++; } Beijing University of Posts & Telecommunications Beijing young@buptnet.edu.cn 13.2.1 定义一个模板 一个由类模板生成的类也是一个完全正常的 类 方法:先做好特定的类,如String,并排除 其中错误,然后再将它转化为String<C> 一类的模板 模板类中成员的声明和定义与在非模板类里 完全一样,模板类的成员也不一定非要在类 内部定义,可以在外部定义,成员本身也是 模板参数化的 Beijing University of Posts & Telecommunications Beijing young@buptnet.edu.cn 定义一个模板示例 template<class C> class String { struct Srep; Srep* rep; public: String(); String(Const C*); String(const String&); }; C read(int i) const; //… template<class C> struct String<C>::Srep { C* s; int sz; int n; }; template<class C> C String<C>::read(int i) const { return rep->s[i]; } template<class C> String<C>::String() { rep = new Srep(0,C()); }; Beijing University of Posts & Tele...
View Full Document

Ask a homework question - tutors are online