关于 boost::iter_split 文档
Posted
技术标签:
【中文标题】关于 boost::iter_split 文档【英文标题】:on boost::iter_split documentation 【发布时间】:2014-11-24 01:48:21 【问题描述】:我遇到了documentation 为boost::iter_split
。部分描述说
使用内置的 find_iterator 完成迭代,因此只有在需要时才执行真正的搜索。
这到底是什么意思?结果必须是容器的容器,所以即使用户只想要第一个拆分,搜索总是会完成吗?
【问题讨论】:
【参考方案1】:看来你是对的。当然,对于接收令牌迭代器范围的具体容器,所有发现都发生在返回之前,所有这些范围都附加到结果容器中。
所以所有的发现确实已经完成了。
(有点想像力:也许文档在暗示事物的输入方面:如果您提供输入迭代器,信息可能不会立即可用,显然算法不会返回,直到结束迭代器遇到过。)
除非将标记添加到结果范围/从源迭代器读取会异常中止搜索
我认为注释是从采用输出迭代器的相应查找函数复制而来的。输出迭代器实际上可能会中途停止算法(考虑一个带有 lambda 的 function_output_iterator
,当找到超过 n
个元素时抛出)。
您可以向库开发人员发送拉取请求,或者在提升邮件列表中提出它。
【讨论】:
您建议使用哪种输入迭代器?我能想到boost::iterator_range
,但不确定模板参数应该是什么。
我的意思是InputIterator(例如std::istreambuf_iterator<char>
)。不过,这几乎不相关,这只是试图考虑记录在案的声明可能仍然是半明智的方式:0以上是关于关于 boost::iter_split 文档的主要内容,如果未能解决你的问题,请参考以下文章