c ++任何类型的数组作为函数的参数

时间:2012-01-05 14:02:55

标签: c++ arrays function

我试图创建一个为参数提供向量的函数:

class class0
{
   ...
   ...
}
void function (vector <class0> random_vector)
{
   ...
   ...
}
int main ()
{
   vector <class0> the_vector;
   function (the_vector);
   ...
   ...
}

有效。我通过一个简单的实验实现了它。但我不知道是否还有更多要知道做这样的事情。它与其他类型的数组是一样的吗?这是最好的方式吗?

所以我需要更多关于使用任何类型的数组作为函数参数的信息。

1 个答案:

答案 0 :(得分:3)

您可以使用模板:

template <typename T>
void function (const vector<T>& random_vector)
{
}

你这样称呼:

vector<A> vecA;
vector<int> vecI;
function(vecA);
function(vecI);

重新阅读你的问题后,我发现你对不同类型的容器更感兴趣。

这也可以通过模板来实现:

template <typename container>
void function2 (const container& random_vector)
{
}

你可以这样打电话:

list<A> lA;
vector<int> li;
function2 (lA);
function2 (li);

此外,您应该按const &传递矢量类型以进行优化。