std::generate

std::generate#

std::generate() 是 C++ 标准库中的一个算法,用于生成序列。

比如,获取零元素列表:

const std::vector<float> p {2, 3, 4, 5, 0 ,2, 0};
std::vector<size_t> is_zeros(p.size());
auto it = p.begin();
std::generate(is_zeros.begin(), is_zeros.end(),
                [&it]() { return static_cast<size_t>(*(it++) == 0.f); });
is_zeros
{ 0, 0, 0, 0, 1, 0, 1 }