模板接收容器作为参数

时间:2013-11-23 22:55:28

标签: c++ templates

我正在做一个模板,它代表带过滤器的容器。它将包含容器应具有的所有方法,但所有方法都适用于该过滤器。所以例如如果过滤器为>1,则begin()将返回适合该过滤器的第一个元素。我想问一下这个模板声明是否正确,或者它应该是什么样子?它应该是模板中的模板还是?

template<typename Container,class Filter>
class filtered_cont{
//methods working with container
}

1 个答案:

答案 0 :(得分:0)

如果你唯一要改变的是由begin()和end()返回的迭代器,我就不会搞砸容器......留下它们,只需创建带有容器和过滤器的辅助函数并返回你的新迭代器:

template<typename Container, typename Predicate>
magic_it filter_begin(Container aContainer, Predicate p) { /.../  return magic ; }