c++ - 如何调整结构向量的大小?
问题描述
我试图调整我的结构向量的大小,但 VS 给我一个错误
Error C2512 1>c:\program files (x86)\microsoft visual
studio\2017\enterprise\vc\tools\msvc\14.11.25503\include\xmemory0(856):
error C2512: 'tabuRecord::tabuRecord': no appropriate default constructor
available
这是我的结构:
struct tabuRecord {
int x;
int y;
int k;
tabuRecord(int x1, int y1, int k1) { x = x1; y = y1; k = k1; }
};
这是我的调整大小功能:
void insertToTabu(vector<tabuRecord> &v, int sizeOfTabuList) {
v.resize(sizeOfTabuList);
}
解决方案
当您调用 时std::vector::resize(X)
,您是在要求 vector (至少,可能)创建X
对象。vector 可以做到这一点的唯一方法是默认构造它们 - 因为你没有给它任何其他东西。而且由于您的结构没有默认构造函数,resize
因此无法编译。
以防万一,您的结构没有默认构造函数,因为您已经声明了一个用户构造函数。
推荐阅读
- ruby - 编写我的块时遇到问题,语法错误?
- python - AttributeError:模块“seaborn”没有属性“热图”
- python - 如何将误差线添加到分组条形图中?
- import - 导入的 Python 文件在正文或任何主函数中没有任何代码运行。我该如何操作这个文件?
- azure-data-factory - 从 ADF 触发 Azure ML 工作区中的 Jupyter Notebook
- python - Google Foobar - 请通过编码消息测试用例失败
- python - 交换变量与使用索引交换数组元素
- reactjs - VS Code React 应用程序使用 Chrome 调试器关闭/崩溃
- discord.py - 如何让你的机器人在加入服务器前请求权限 discord.py
- javascript - 自适应卡片在提交中输入值