将一个数组复制到另一个数组的中间

Copy an Array to The Middle of an Other Array

本文关键字:数组 复制 中间 另一个 一个      更新时间:2023-10-16

假设我有两个字符数组

char a[] = "0123456789";
char b[] = "abcde";

现在我需要复制一些'b'到'a'的中间,所以我将得到这个结果:

0123abcd89
所以我试着用std::copy或者std:copy_n
std::copy(b , b+4, a+4); // or
std::copy_n(b , 4, a+4);

这两个都给出一个错误,而简单地将它们与'a'数组的开头一起使用就可以了:

std::copy(b , b+4, a); // or
std::copy_n(b , 4, a);

在过去,我总是使用循环来做这类事情,但现在我需要一种尽可能高效地完成这类事情的方法。有比循环更好的方法吗?

Ok,问题是在VS中只有调试模式-不安全的函数调用-错误,它在发布模式和其他编译器中编译得很好。