如何使向量参数具有非特定类型?

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)

我应该进行哪些更改以使其适用于任何类型的载体?

Cru*_*ean 7

简单:使其成为模板函数。另外,您应该通过(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)