我正致力于学习C ++ STL算法。我需要帮助尝试找到一个函数来从现有向量中的值创建增量向量。换句话说:
我正在寻找简洁的东西,比如R"差异"这里提到的功能: computing a new vector which has deltas from an existing vector
我找到了转换函数,但它似乎一次只对一个元素进行操作。它似乎不允许在提供的函数中允许迭代器的参数进行转换,所以我仅限于当前元素。我试图学习STL算法,所以我真的不需要任何可能具有" diff"实现。如果有一种我不知道的简洁方法,我想看看如何使用STL函数来解决这个问题。
以下是有问题的部分的示例:
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int> v = { 1, 2, 3, 4, 5 };
vector<int> delta;
//---------------------------------------
// way to do this with STL algorithms?
for (auto i = v.begin()+1; i != v.end(); i++) {
delta.push_back(abs(*i - *(i - 1)));
}
//---------------------------------------
for (int i : delta) {
cout << i << " ";
}
return 0;
}