在模板定义内部指定类型

来源:互联网 发布:邮件营销软件 编辑:程序博客网 时间:2024/06/05 16:00

  在模板定义内部指定类型


比如说要写一个函数模板,功能是输出STL里面容器的第一个数。那么就应该把容器的类型传递进去

#include<iostream>#include<vector>using namespace std;template<typename Parm>void p(Parm &c){typename Parm::iterator it=c.begin();cout<<*it<<endl;}void main(){vector<int>a(10,10);p(a);}

Parm就是容器的类型, Parm::iterator指的是这个类型容器的迭代器。前面加个typename是显式的告诉编译器这一个类型成员。

#include<iostream>#include<vector>using namespace std;class P{public:typedef unsigned int size_type;};template<typename Parm>void fcn(){typename Parm::size_type a=10;cout<<a<<endl;}void main(){fcn<P>();}

下面呢就是普通的类,类的作用域下面定义了一个新的类型size_type,使得我们可以以独立于机器的方式使用容器。

然后我们在这个函数里面使用这个类型成员。


0 0
原创粉丝点击