首页 > 解决方案 > 如何制作具有非特定类型的向量参数?

问题描述

我的目标是创建一个 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);
}

我应该进行哪些更改才能使其适用于任何类型的向量?

标签: c++functionvectortypes

解决方案


简单:使其成为模板函数。此外,您应该通过 (const) 引用传递向量以避免不必要的复制。

template<typename T, typename Allocator>
void PrintVect(const std::vector<T, Allocator> &vect)
{
    for (const auto &i : vect) std::cout << i;
}

推荐阅读