use*_*108 9 c++ templates vector
我在标题中有以下两行,以声明包含模板的向量:
template <class t>
std::vector <t> vec;
Run Code Online (Sandbox Code Playgroud)
但是我收到以下错误:数据成员'vec'不能是成员模板我做错了什么?编辑:我不知道我被理解正确,我试图声明一个包含模板的向量,我知道这可以完成,因为可以有以下内容:
template <class T>
void funct(vector <T> v){
}
Run Code Online (Sandbox Code Playgroud)
这个函数采用模板的向量作为它的参数,我希望做同样的事情,除了在标题中声明向量以允许向量包含任何东西.
在template <>当语句仅用于声明一个函数模板或类模板.例如,您可以在声明(和定义)类时使用它:
template <typename T>
class TemplateClass {
/* definition */
};
Run Code Online (Sandbox Code Playgroud)
或功能:
template <typename T>
void templateFunc(T value) {
/* definition */
}
Run Code Online (Sandbox Code Playgroud)
创建类的实例时,不能使用该template <>语句.而是指定一个模板参数,如下所示:
TemplateClass<int> tc;
Run Code Online (Sandbox Code Playgroud)
并且在调用模板函数时:
int i = 1;
templateFunc(i); // <-- Automatic template deduction to int.
Run Code Online (Sandbox Code Playgroud)
lul*_*yon -1
Vector总是需要一个类T作为模板。但模板应该放在类声明之前。
你可能的意思是
template<class T>
class A {
private:
std::vector<T> vec;
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6668 次 |
| 最近记录: |