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 }