是fill_n,并填充相同的函数,但具有不同的参数重载



我正在研究<algorithm>fillfill_n函数,对我来说,它们似乎做了同样的事情,但定义不同。

这是真的吗?如果不是,它们有什么不同?

他们描述的措辞似乎大致相同(我在MSDN的fill_nfill上读到的)。

如果它们是相同的,那么拥有这两种功能的优势是什么?

它只是给开发者更多的选择,还是一个比另一个更快?

它们不是同一个函数,没有。给定起始迭代器和结束迭代器,std::fill填充一个范围。std::fill_n填充一定数量的元素,给定一个起始迭代器和一个数量。fill_n对于输出迭代器很有用,当您无法获得结束迭代器时,例如使用std::ostream_iterator:

std::fill( std::ostream_iterator<int>(std::cout), ???, x);
                                                  ^^^
                                           what do I put here?
std::fill_n( std::ostream_iterator<int>(std::cout), 25, x);

相关内容

  • 没有找到相关文章

最新更新