因此,我试图在迭代器的左侧和右侧找到所有值的平均值,并将其转换为新的向量。我在想类似的东西:

transform(begin(vector1)+1,end(vector2)-1, back_inserter
(vector2),[](vector<int>::iterator n) {return (*(n - 1) + *(n) + *
(n+1))/3;});


不幸的是,这给了我关于从1'int'转换参数的错误
到std :: vector_iterator

我将参数声明为向量迭代器,但是我必须做错了什么。我需要在lambda或在函数中使用某些东西来做到这一点。我想至少在正确的方向上指出一个点,因为尝试并为此寻找答案很痛苦。也许在您问我要输入什么才能找到这样的答案之前,是否已询问过此问题。

最佳答案

参数应为向量的value_type(或可转换为它,如const引用),因此应为int

关于c++ - 如何使用前值和后值对 vector 进行变换,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24960631/

10-11 22:13
查看更多