在C++的模板类中创建向量

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在C++的模板类中创建向量相关的知识,希望对你有一定的参考价值。

我试图在一个模板类中创建一个向量,而向量的类型取决于我所定义的类的模板。我的代码如下。

template<class T>
class A 
    vector<T*> vec;
    vec.resize(100);

当我试图编译它时,我得到以下错误信息。

error: ‘vec’ does not name a type; did you mean ‘getc’?
     vec.resize(100);
     ^~~

谁能告诉我如何定义这样的向量?

先谢谢你。

答案

这与模板无关。这种非模板的代码也会是一个错误

class A 
    vector<int*> vec;
    vec.resize(100);

因为 vec.resize(100) 不在一个函数中。我猜你想让这些代码在构造函数中被调用,就像这样

class A 
    vector<int*> vec;
    A() 
        vec.resize(100);
    

这是合法的。现在我们可以把这个法律条文变成一个模板。

template <class T>
class A 
    vector<T*> vec;
    A() 
        vec.resize(100);
    

以上是关于在C++的模板类中创建向量的主要内容,如果未能解决你的问题,请参考以下文章

如何在 C++ 中创建一个作为另一个类的向量的类?

C++如何创建异构容器

具有函数模板和重载的 C++ 类

如何在类中创建模板函数? (C ++)

c++中的矩阵和向量模板类

C++ 难以在单例类中创建类的实例