c++ - 如何使用前后值对 vector 进行变换

标签 c++ vector iterator

所以我试图将迭代器左右两侧的所有值的平均值放入一个新 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/

相关文章:

java - ArrayList 'squash' 对其元素的操作

C++ 设计 : How to cache most recent used

c++ - 无法将参数 'double' 的 'double*' 转换为 '1' 到 'void Swap(double*, double*)'

c# - 两个向量 2D 之间的角度

c++ - 将 vector 元素移动到 vector 的后面

javascript - Javascript 是否有类似于 Java 的增强的 for 循环语法

c++ - 映射、迭代器和复杂结构 - STL 错误

c++ - 如何在 Windows 上使用命令行运行 UnitTest++

c++ - CopyMemory 复制比 VirtualAlloc 分配更多的字节怎么办

c++ - 在结构 vector 中搜索