c++ - 如何制作具有非特定类型的向量参数?
问题描述
我的目标是创建一个 C++ 函数,它接受一个向量参数,并且独立于给定向量的类型,将向量的内容一个接一个地打印出来。下面的代码适用于 type 的向量<int>
:
#include <iostream>
#include <vector>
using std::vector;
void PrintVect(vector <int> vect) {
for (unsigned i = 0; i < vect.size(); i++) {
std::cout << vect[i];
}
}
int main() {
vector <int> nums = {1, 2, 3};
PrintVect(nums);
}
我应该进行哪些更改才能使其适用于任何类型的向量?
解决方案
简单:使其成为模板函数。此外,您应该通过 (const) 引用传递向量以避免不必要的复制。
template<typename T, typename Allocator>
void PrintVect(const std::vector<T, Allocator> &vect)
{
for (const auto &i : vect) std::cout << i;
}
推荐阅读
- excel - Excel 单元格格式 - 水平对齐
- c# - 使用 & 符号从字符串创建字符串 []
- c# - 锁定变量的好处?
- c# - C# 将参数传递给 Postgres Npgsqlcommand DO 块
- javascript - console.log() 会触发垃圾回收吗?
- javascript - 将转换后的 MQTT 字符串传递给 MYSQL
- java - 如何编写用于更新表单的 selenium 测试用例
- javascript - 代码在函数中的行为不同
- sap-cloud-platform - sap 4 hana 路由器注销无法正常工作
- javascript - 如何在 Chartjs 2.x 中使用图表插件 (Chart.pluginService.register) 访问标签数组?