所以我试图将迭代器左右两侧的所有值的平均值放入一个新 vector 中。我在想类似的事情:
transform(begin(vector1)+1,end(vector2)-1, back_inserter
(vector2),[](vector<int>::iterator n) {return (*(n - 1) + *(n) + *
(n+1))/3;});
不幸的是,这给了我一个关于 convert argument from 1 'int' 的错误 到 std::vector_iterator
我将参数声明为 vector 迭代器,但我一定做错了什么。我需要在 lambda 中或使用功能性的东西来做到这一点。我想至少在正确的方向上指出如何做到这一点,因为尝试为此寻找答案是一件痛苦的事情。也许如果有人问过这个问题,你可以教我输入什么来找到这样的答案。
最佳答案
参数应该是 vector 的value_type
(或者可以转换成它,比如const reference),所以它应该是int
。
关于c++ - 如何使用前后值对 vector 进行变换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24960631/