gpt4 book ai didi

c++ - 他们为什么不添加 iota 的运营商版本?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:22:35 25 4
gpt4 key购买 nike

iota 模板函数已添加到标准库中,以用递增的值序列填充迭代器范围。

  template<typename ForwardIterator, typename Tp>
void
iota(ForwardIterator first, ForwardIterator last, Tp value)
{
for (; first != last; ++first)
{
*first = value;
++value;
}
}

<numeric> 中的大多数其他模板具有接受用户指定运算符的版本。有了这个:

  template<typename ForwardIterator, typename Tp, typename Operator>
void
iota(ForwardIterator first, ForwardIterator last, Tp value, Operator op)
{
for (; first != last; ++first)
{
*first = value;
op(value);
}
}

如果你不想(或不能)为 Tp 重载 operator++() 会很方便。我会发现这个版本比默认的 operator++() 版本更广泛使用。<

最佳答案

我怀疑原因是以下一种或多种原因的常见组合:

  • 没有人提交提案
  • 它被认为对于这个版本来说不够重要(已经巨大,而且已经很晚了)
  • 它被遗忘了(就像 C++98 中的 copy_if)
  • 使用 std::generate 很容易替换。

关于c++ - 他们为什么不添加 iota 的运营商版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6619315/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com