c++ - 在 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);
}
}
推荐阅读
- node.js - 记录所有错误和警告
- c++ - 在 C++ 中将大量图像保存在 RAM 中的最佳方法
- python - 按另一个列表的顺序对python列表进行排序并检索旧索引
- r - 如何在闪亮的应用程序中添加滚动条和十字按钮以弹出窗口?
- javascript - 基于自动分号插入 JS 规则的有趣错误。需要说明
- r - R函数用于识别另一列中的值?
- python - 在 Windows 上加载的内核驱动程序版本
- excel - 如何计算 24 小时格式的固定时间范围内的时间值?
- material-ui - 使用 Hooks API 和 Enzyme 浅层渲染测试 Material UI 组件
- javascript - d3 zoom 消耗事件并防止鼠标悬停