【问题标题】:Are fill_n and fill the same function but with different parameter overloads?fill_n 和 fill 是同一个函数,但参数重载不同吗?
【发布时间】:2012-01-19 05:04:53
【问题描述】:

我正在研究<algorithm>fillfill_n 函数,在我看来,它们似乎在做同样的事情,只是定义不同。

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

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

如果它们相同,这两个功能都可用有什么好处?

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

【问题讨论】:

    标签: c++ visual-c++ msdn stl-algorithm


    【解决方案1】:

    它们的功能不同,不。 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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多