c++ 在自定义Vector类中创建insert()函数时安装超时

pxq42qpu  于 2023-02-06  发布在  其他
关注(0)|答案(1)|浏览(114)

我面对这个错误

[ 20%] Built target support
  [ 80%] Built target probLib1
  [ 90%] Building CXX object test/CMakeFiles/vector_insert.dir/vector_insert.cpp.o
  [100%] Linking CXX executable vector_insert
  [100%] Built target vector_insert
  
❌ vector_insert
::error::Setup timed out in 60000 milliseconds

当我试图构建一个自定义Vector类并定义一个insert()函数时。
x一个一个一个一个x一个一个二个x
我猜这是因为

push_back(item);

但我不知道怎么解。
我找了很久,好像没有类似的案例发布,现有的跟我的案例没有关系C++: Program crash while adding object to custom vector classInsert method in custom vector class in c++
你能给我一些建议吗?

ru9i0ody

ru9i0ody1#

谢谢你们,我终于发现这是由成员变量的初始化引起的,或者更具体地说,是这个Vector类的默认构造函数。
原版:

Vector(int size = 0, const T& value = T{}) // construct by default / given size
{
  vsize = size;
  vcap = size * 2; 
  ifmt = new T[vcap];
  for (int i = 0; i < vsize; ++i)
  {
    ifmt[i] = value;
  }
}

编辑版本:

Vector(int size = 0, const T& value = T{}) // construct by default / given size
{
  vsize = size;
  vcap = size + 1; // edited
  ifmt = new T[vcap];
  for (int i = 0; i < vsize; ++i)
  {
    ifmt[i] = value;
  }
}

虽然我不知道为什么它应该是这样的,但它运行得很好LOL

相关问题