max*_*xxy 0 c++ types function vector
我的目标是创建一个带有向量参数的C ++函数,并且与赋予向量的类型无关,将其内容逐个打印出来。以下代码适用于类型为向量的向量<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);
}
Run Code Online (Sandbox Code Playgroud)
我应该进行哪些更改以使其适用于任何类型的载体?
简单:使其成为模板函数。另外,您应该通过(const)参考传递向量,以避免不必要的复制。
template<typename T, typename Allocator>
void PrintVect(const std::vector<T, Allocator> &vect)
{
for (const auto &i : vect) std::cout << i;
}
Run Code Online (Sandbox Code Playgroud)