c++ - 如何调整结构 vector 的大小?

标签 c++ vector struct resize

我试图调整结构 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/

相关文章:

c++ - 为什么当客户端只关闭发送一半的连接时,HTTP 服务器就关闭连接?

c++ - 如何在重复循环中遍历 std::vector

c++ - vector 初始化导致大量内存使用

c++ - 如何使用 OpenGL 创建位图的实体挤压?

C++ 使用结构体作为类的参数

c - 是否有可能从抽象/基本结构继承或在 C 中沿着这些线路模拟某些东西?

c++ - 初始化结构数组 C++ 时出现问题

c++ - C中函数执行的优先顺序

c++ - 如何重载条件运算符?

database - Golang mgo 查找