C++ STL 中的 generate 和 generate_n 函数如何实现高效批量生成序列?
- 内容介绍
- 文章标签
- 相关推荐
本文共计775个文字,预计阅读时间需要4分钟。
您已经知道,可以使用for_each()算法将一个函数对象应用到序列中的每一个元素上。函数对象的参数是for_each()的前两个参数,它们指定了序列中元素的引用。因此,它可以直接修改被保存的值。
T fun (); // T is a type that can be assigned to an element in the range
无法在函数内访问序列元素的值。generate() 算法只会保存函数为序列中每个元素所返回的值,而且 genemte() 没有任何返回值。为了使这个算法更有用,可以将生成的不同的值赋给无参数函数中的不同元素。也可以用一个可以捕获一个或多个外部变量的函数对象作为 generate() 的第三个参数。本文共计775个文字,预计阅读时间需要4分钟。
您已经知道,可以使用for_each()算法将一个函数对象应用到序列中的每一个元素上。函数对象的参数是for_each()的前两个参数,它们指定了序列中元素的引用。因此,它可以直接修改被保存的值。
T fun (); // T is a type that can be assigned to an element in the range
无法在函数内访问序列元素的值。generate() 算法只会保存函数为序列中每个元素所返回的值,而且 genemte() 没有任何返回值。为了使这个算法更有用,可以将生成的不同的值赋给无参数函数中的不同元素。也可以用一个可以捕获一个或多个外部变量的函数对象作为 generate() 的第三个参数。
