将memcpy转换为std::copy



我想用"std::copy"代替我的"memcpy",但是我就是找不到传递参数的正确方法。

我原来的内存代码是

memcpy(&uFeatures.Features[0], &((char*)(m_pData))[iBytePos],iByteCount);

我用std::copy尝试了各种方法,但是都不起作用。

有谁能帮忙吗?

从你的语法来看,它似乎是这样的。(假设Features[0]是char*,如果不是,你需要强制转换(检查注释))

std::copy(&uFeatures.Features[0], &uFeatures.Features[0]+iByteCount, &((char*)(m_pData))[iBytePos])

和我在你的评论中看到的

我想让编译器决定它喜欢什么(memcopy,),这就是为什么我想使用std::copy

std::copy不会被编译器翻译成memcpy。他们没有关系。复制会像这样做

while (first != last) {
    *d_first++ = *first++;
}

最新更新