使用`transform`创建一个增加的向量

oli*_*rsm 1 c++ std c++11

我试图使用增加的向量transform,但不能正确地做.我想用变换.我究竟做错了什么?

PS - 我将使用c ++ 11标准和g ++.

#include <iostream>
#include <algorithm>
#include <vector>

int main()
{
    std::vector<double> x(10);
    x.front() = 0.0;
    double h = 0.1;
    std::transform(x.begin(), x.end() - 1, x.begin() + 1, [h](unsigned int xn) {return xn + h;});
    std::cout << x.at(3) << " " << x.at(9) << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

Cal*_*eth 5

转换为unsigned int会在用于计算下一个值时截断每个值