我有一个长度不确定的向量,vSignal
。
我需要将vSignal
的一部分复制到字典向量中:
std::copy(vSignalIt1-n1, vSignalIt1, vDictionnary.begin());
vSignalIt1
是vSignal
迭代器之一。我的问题是,当我调用
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);