C++;复制用新创建的数组 < >我在C++中创建了两个数组:代码> List1和 List2 < 新< /COD> >。代码>列表1用数据更新。我想将List1复制到List2。我试着用 std::copy(std::begin(List1), std::end(List1), std::begin(List2));
但是,这不起作用,并给出以下错误消息:C++;复制用新创建的数组 < >我在C++中创建了两个数组:代码> List1和 List2 < 新< /COD> >。代码>列表1用数据更新。我想将List1复制到List2。我试着用 std::copy(std::begin(List1), std::end(List1), std::begin(List2));,c++,copy,C++,Copy,但是,这不起作用,并给出以下错误消息: error: ‘begin’ is not a member of ‘std’ 对于这个错误有什么可能的建议吗?或者C++中复制的替代方法?将这一行放到CPP文件的顶部: #include <iterator> #包括 要使用std::begin和std::end,您需要包括,并确保编译器支持C++11。然而,这并不能解决您的问题,因为您不能将它们与指针一起使用。改用std::vector。“我用C++中的新建创建了两个数组List1和Li
error: ‘begin’ is not a member of ‘std’
对于这个错误有什么可能的建议吗?或者C++中复制的替代方法?将这一行放到CPP文件的顶部:
#include <iterator>
#包括
要使用std::begin
和std::end
,您需要包括
,并确保编译器支持C++11。然而,这并不能解决您的问题,因为您不能将它们与指针一起使用。改用std::vector
。“我用C++中的新建创建了两个数组List1和List2。”
begin
和end
自由函数在指针上不起作用
即使一切都是正确的,您最终可能会遇到没有匹配的开始调用(T*&)
T
是指针的类型
使用
std::vector
或std::list
其他STL容器或仅使用静态数组来处理std::begin
和std::end
@KerrekSB:而不是new?我不想将其更改为std::vector,因为代码已经在分发中。std::begin
位于
中。不过,它们在指针上不起作用。@chris:已经包括在内了。你使用C++11吗std::begin
来自C++11。不要使用begin和end-then,只需给它第一个和最后一个成员之后的一个。std::copy(&List1[0],&List1[无论大小],List2);有什么解释吗?或者他们只是没有包括它的support@POW:你会推荐使用memcpy吗?@khajvah-See,它可能会回答你的问题question@SathishKrishnan这就是为什么我问数组是什么。如果施工人员需要这样做,那么这将出错work@khajvah原因很简单,指针是指针,而不是数组。指针可以指向数组的开头(例如,分配了new[]
),但是没有可移植的方法来判断它是否开始,或者该数组有多大。这意味着实现end()。