用C ++替换子数组

时间:2014-10-23 06:15:13

标签: c++

我有一个名为“A”的uchar(字节)数组(长一个 - 它代表一个图像)。 我需要的是将子阵列从位置i替换为位置j和“B”阵列。 无需搜索“A”,索引是已知的。

当然,我可以逐字节地完成它,但这需要实时工作,所以我正在寻找一个能很好地完成这项工作的库函数。

2 个答案:

答案 0 :(得分:7)

我会这样做:

std::copy(B, B + i - j, A + i);

这将取代A + i位置,B的内容。实际上,实施将相当于memcpy,就像Vlad所做的那样。我建议使用std :: copy,它是一种标准算法,一旦你学习了它的接口,它就比普通的旧数据类型更有用,即使在普通旧数据的情况下,一个不错的实现也会是最佳的或接近最优的。

答案 1 :(得分:2)

此库函数名为memcpy,在标题<cstring>

中定义

例如

#include <cstring>

//...

std::memcpy( A + i, B, j - i + 1 );

如果要复制位置j中的符号。否则第三个参数将是j - i