【问题标题】:What is this idiom called?这个成语叫什么?
【发布时间】:2016-11-06 11:24:40
【问题描述】:

假设我有一个Iterable 接口:

template<typename T>
struct Iterable
{
  virtual bool MoveNext() = 0;
  virtual T& GetCurrent() = 0;
};

然后我有一个实现Iterable 接口的类。叫它FileList。它表示FAT16 系统上的文件列表。由于我的微控制器上的内存有限,而不是 FileList 在调用 GetCurrent 时实际存储文件列表,因此它会从正在访问的 SD 卡中获取文件。

所以我的问题是:

我刚刚执行的成语叫什么(如果它甚至是存在的成语)?

【问题讨论】:

  • 如果我理解正确的话,它似乎是一个惰性迭代器。
  • 如果你在写 c++,这个成语的名字是“一个错误”。如果您根据标准库中的概念对迭代器进行建模,您将能够将它们与所有标准算法一起使用。那一定是一场胜利。
  • @RichardHodges 看到我在微控制器上(如问题中所述)我无法访问 c++ 标准库,因为它会占用我所有的内存。
  • @DarthRubik:您正在编写微控制器代码并使用虚拟函数而不是模板。你确定这是个好主意吗?
  • @DarthRubik:我认为您需要认识到标准库容器(动态分配内存)和标准库算法之间的区别,后者什么都不分配。标准库不是全有或全无的东西。您可以使用对您有用的部分,而忽略其余部分。

标签: c++ idioms


【解决方案1】:

有时它被称为生成器。

【讨论】:

  • 这总是一个答案,还是有时?
  • 如果你有什么可以支持你的主张,那就太好了
  • @KABoissonneault,你为什么这么问?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-12-17
  • 2010-11-10
  • 1970-01-01
  • 2011-06-10
  • 2020-03-24
  • 2011-09-01
  • 2012-07-24
相关资源
最近更新 更多