【发布时间】:2010-06-21 23:51:31
【问题描述】:
我想将任意容器作为函数的参数传递并对其进行迭代(不擦除也不推送元素)。不幸的是,看起来没有标准的方法来做到这一点。
我想到的第一个解决方案是由封装 STL 容器的类实现的接口(我们称之为CollectionInterface)。所以函数声明看起来像:
f(const CollectionInterface * collection);
或者,我在考虑方法模板,它的优点是它在编译时保持绑定:
template <class CONTAINER> void f(const CONTAINER & collection);
你认为哪种方式更好?
【问题讨论】:
标签: c++ stl collections containers function-templates