我有一个长度不确定的向量,vSignal

我需要将vSignal的一部分复制到字典向量中:

std::copy(vSignalIt1-n1, vSignalIt1, vDictionnary.begin());


vSignalIt1vSignal迭代器之一。
我的问题是,当我调用copy()函数时,我不确定vSignalIt1-n1是否指向向量中的值。

我曾考虑过使用反向迭代器进行循环,该循环将一个一个地复制值,直到达到rend()vSignal(实际上我做到了,并且奏效了)。

但是,是否有使用copy()函数的替代解决方案?

编辑:

有点精度:vDictionnary为固定大小(n1),并且在无法从vSignal复制足够的值来完全填满的情况下,我将其填为0。

最佳答案

您可以使用

const auto n2 = std::min(n1, std::distance(vSignal.begin(), vSignalIt1));

std::copy(vSignalIt1 - n2, vSignalIt1, vDictionnary.begin());
std::fill(vDictionnary.begin() + n2, vDictionnary.end(), 0);

09-05 05:56