4.3.4 赋值
2025年09月26日
4.3.4 赋值
STL提供了4种算法,用于给容器赋值。这4种算法分别是fill()、fill_n()、generate()和generate_n()。
fill_n()算法和generate_n()算法只给指定区间的前n个数值赋值。fill()算法和fill_n()算法用于给每个元素赋予相同的数值;generate()算法和generate_n()算法在执行时会调用函数的子进程或仿函数(g),产生新值,并赋值给容器中的元素。其原型如下:
值得一提的是,fill_n()算法和generate_n()算法均指定了赋值区间的起始位置和赋值元素的个数。详见例4-19。
例4-19
例4-19的执行效果如图4-19所示。
图4-19 例4-19的执行效果
总结
generate()和generate_n()算法除了可以使用STL提供的函数作为子进程或仿函数(用于产生元素),还可以使用自定义的函数产生新的元素值,甚至可以使用特定的算法产生数值序列。例如,在例4-19中,main()函数最后即产生1个斐波那契数列。