【发布时间】:2011-02-15 03:17:40
【问题描述】:
在 STL/Boost 中,是否有一个现成的输出迭代器,它只计算它增加的次数?当算法执行*iter = value 时,该值将被简单地丢弃。
如果没有,那么我自己的滚动似乎很容易。虽然如果有人发布了这样一个迭代器的示例,它可能对其他人有用。
【问题讨论】:
-
你想用它做什么?你能想出一个例子吗?
-
有
std::count()和std::count_if()。这些可以吗? -
@wilhelm:假设我有一个算法
findArticulations,它通过输出迭代器输出图中的关节点。我想编写另一个算法isBiconnected,利用已经存在的findArticulations。 -
@wilhelmtell:是的,我想
std::count可以在我的示例中使用,但它需要将关节点不必要地复制到临时容器中才可以计算。 -
有
boost::counting_iterator但我不确定它是否符合您的要求。它产生operator*的计数。