首页 > 解决方案 > 容器的 C++ 函数

问题描述

我想编写一个 C++ 函数,例如:

template <T<int> >
void printIntegers(T<int> ints) {
    for (int i: ints) printf("%d ", i);
}

因为我想T<int>成为vector<int>list<int>或任何其他 STL 容器。模板参数应该怎么写?

标签: c++templates

解决方案


您可以将模板模板参数作为参数:

template <template <typename...> typename Container>
void printIntegers(Container<int> ints) {
  for (int i : ints) std::printf("%d ", i);
}

请参阅https://en.cppreference.com/w/cpp/language/template_parameters#Template_template_parameter

但是,正如其他答案已经建议的那样,通过 const 引用可能更可取,并且无论如何可能有更好的方法来做你的例子。


推荐阅读