【发布时间】:2016-10-15 14:20:51
【问题描述】:
一些 STL 算法(以及在其他情况下可以想到的类似 STL 的算法)通过迭代器获取输入。有时我发现自己想要传递一个 (const) 迭代器作为他们的输入之一,它只是不断产生相同的值(或 const 引用内存中的相同值)。例如,您可以使用它来实现 std::fill 使用 std::copy_n 和 std::distance(假设您有目标的结尾)。
那么,标准库或其中一个 TS 是否在任何地方(C++17 或更早版本)都有这个?
注意:我不是在谈论一个 const 迭代器,而是一个从不前进并不断产生相同东西的迭代器。
【问题讨论】:
-
您指的是哪种“STL 算法”?事实上,我所知道的几乎所有东西都会提前或以其他方式计算与迭代器相关的东西。声明一个接受迭代器值的库函数是没有意义的,只是为了取消引用它,否则什么也不做。我认为你误会了什么。
-
@SamVarshavchik:见编辑。
-
您的编辑无法解释您正在查看哪些特定的“STL 算法”。
-
如果您尝试将不可递增/可递减的迭代器传递给需要推进所述迭代器的函数,那么它将无法正常工作。
-
@ArchbishopOfBanterbury:其实我之前举了一个无效的例子。让我们再试试。