C++ 已定义结构的向量的模板
我有以下数据结构C++ 已定义结构的向量的模板,c++,templates,vector,struct,C++,Templates,Vector,Struct,我有以下数据结构 class FamilyMem { public: string name; string relation; }; template<class T> class Paerson { public: string name; int age; vector<T> family; }; class-FamilyMem { 公众: 字符串名; 字符串关系; }; 模板 班长 { 公众: 字符串名; 智力年龄;
class FamilyMem
{
public:
string name;
string relation;
};
template<class T>
class Paerson
{
public:
string name;
int age;
vector<T> family;
};
class-FamilyMem
{
公众:
字符串名;
字符串关系;
};
模板
班长
{
公众:
字符串名;
智力年龄;
载体家族;
};
我有一个向量定义如下
vector< Paerson<FamilyMem> > p;
vectorp;
我正在使用这个库,我想调用一个使用模板的函数,我正在尝试创建自己版本的函数,但它不起作用
// I initialize the vector p by calling this function
initPerson(p);
for(int i=0; i< p.size(); p++)
display(p[i]);
//我通过调用此函数初始化向量p
一人(p);
对于(int i=0;i
这就是函数
template<class U>
struct Displaying< std::vector<U> >
{
typedef std::vector<U> Vector;
static void display(const Vector& v)
{
cerr << "Vector Size " << v.size();
}
}
模板
结构显示
{
typedef std::向量;
静态空隙显示(常量向量和v)
{
cerr在执行模板专门化时,您的案例的正确语法应该是template
,而不是template
请花些时间格式化代码。按原样阅读几乎是痛苦的。至少,对于模板专门化,您可以使用template
而不是template
@MikelF谢谢!!您能将其作为解决方案发布,以便我可以接受吗
template<class U>
struct Displaying< Paerson<FamilyMem> >
{
static void display(const Paerson<FamilyMem> v)
{
for (int i = 0; i < v.family.size(); i++)
cerr << "name " << v.family.name << " relation " << v.family.relation << "\n";
}
}