我试图调整结构 vector 的大小,但 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
。
为了以防万一,您的结构没有默认构造函数,因为您声明了用户构造函数。
关于c++ - 如何调整结构 vector 的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54257995/