我想将任意容器作为函数的参数传递并对其进行迭代(不擦除也不推送元素)。不幸的是,看起来没有标准的方法来做到这一点。
CollectionInterface
我想到的第一个解决方案是由将包装 STL 容器的类实现的接口(我们称之为接口)。所以函数声明看起来像:
f(const CollectionInterface * collection);
或者,我在考虑方法模板,它的优点是它在编译时保持绑定:
template <class CONTAINER> void f(const CONTAINER & collection);
你认为哪种方式更好?