gpt4 book ai didi

c++使用数组而不调用构造函数

转载 作者:行者123 更新时间:2023-11-30 03:33:19 24 4
gpt4 key购买 nike

我的任务是在不调用 T(模板)构造函数的情况下创建一个模板类型数组。之后我想使用 std::move 将一些值从另一个数组移动到这个数组。我怎么能在 C++ 中做到这一点?这是我的代码:

void *temp = malloc((end-begin) * sizeof(T));
for (unsigned int i = begin; i < end; ++i){
temp[i] = std::move(array[i]);
}

但这行不通。编译器说明如下:指向不完整类型“void”的指针的下标。

最佳答案

void 数组没有意义。 void是不完整的类型(并且没有大小),因此 temp[i] 会生成您看到的错误。

要实现你想做的事,为什么不使用 std::vector ,并在元素可用时将其插入其中?

std::vector<T> temp;
for (unsigned int i = begin; i < end; ++i){
temp.push_back(std::move(array[i]));
}

关于c++使用数组而不调用构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43066223/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com