Generic iterator我试图找到一种访问一组容器的通用方法。 除了另一个自定义列表之外,我还有一个标准矢量和列表。 定制列表定义了一个迭代器;
与适当的运算符重载。 理想情况下,我想这样做。
但是显然这些都是不同类型的迭代器。 我可以假设所有容器都是同一类型。 有解决这个问题的优雅方法吗? 这是您可能会感兴趣的一些文章 为STL迭代器提供基类 C ++迭代器的类型清除 any_iterator类参考 小心您的要求的情况。您看到的any_iterator类适用于无限制的迭代器类型集。您只有三个,这些是您预先知道的。当然,您将来可能需要添加第四种类型,但是如果这需要O(1)额外的代码行怎么办? 一组封闭的可能包含类型的最大优点是您对sizeof()有一个上限,这意味着您可以避免堆及其带来的间接调用。基本上,将它们全部塞入boost :: variant并调用apply_visitor。 迟到总比不到好... 最新一期的C-Vu出现了,您可以猜测其中的内容:没错,迭代器可以完全满足您的要求。 不幸的是,您需要成为ACCU的成员才能查看该杂志(本文引用了David链接的2000年以来的Overload文章)。但是,只需一年的可观价格,您就可以读到一本不错的杂志,会议和用户群。成为会员后,您可以查看背面期刊的PDF,因此您还在等什么? |