c++ - 容器的 C++ 函数
问题描述
我想编写一个 C++ 函数,例如:
template <T<int> >
void printIntegers(T<int> ints) {
for (int i: ints) printf("%d ", i);
}
因为我想T<int>
成为vector<int>
或list<int>
或任何其他 STL 容器。模板参数应该怎么写?
解决方案
您可以将模板模板参数作为参数:
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 引用可能更可取,并且无论如何可能有更好的方法来做你的例子。
推荐阅读
- sip - 如何确保 BYE 消息绕过 SIP 代理?
- powerbi - 使用当前行值对 Power BI 中具有匹配列名的表执行计算?
- postgresql - PostgreSQL - “预期光标”
- octave - 如何读取由“”分隔但包含逗号的十进制数字的数据
- excel - 如何将范围定义为变量以用作 Excel 工作表函数的参数?
- angular6 - 路由器找不到组件
- php - 通过转发器获取自定义帖子类型字段
- android - 错误:未找到 Gradle DSL 方法:'implementation()' 但我有最新的 Android Studio,gradle,
- java - Java 和 GlassFish 部署错误:项目当前已归档部署
- android - React Native Firebase 数据库中的 SyntaxError 异常