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

Creating a vector in a template class in C++

我正在尝试在模板 class 中创建一个向量,其中向量的类型取决于我在其中定义它的 class 的模板。我的代码如下 :

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);
    }
}