因此,我正在设计一个类(通过网络)连接到服务以接收一些数据。我不知道我会提前收到多少 man 数据点。不过我想知道,是否有一种方法可以使用 forward_iterator 使此类可迭代,以便充分享受 STL。我的想法是这样的:
self_type operator++() {
// if there are some locally cached data points left return next
// else connect to service again to receive the next batch of data
}
但是,由于我无法提供有效的 end()
,我很好奇是否仍然可以这样做。
另一种(无迭代器)接口(interface)可能类似于:
bool hasMoreDataPoints() const;
DataPoint& getNext();
这显然不适用于任何 STL 算法。
最佳答案
像标准库对 istream_iterator
做的那样:当您用完数据时,设置您的迭代器状态,使其与该类型的默认构造对象进行比较。然后是你的 end()
等价物。
关于c++ - 带有移动端的前向迭代器(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40050830/