我在 C++ 中有一个简单的函数来进行矩阵乘法。我定义的函数如下:
void matrix_multiplication(std::vector<std::vector<double> > matrix1 , std::valarray<std::valarray<double> > matrix2,
std::vector<std::vector<double> > &result)
现在在代码的一些不同部分,我再次需要调用这个完全相同的函数,但使用不同的输入类型,即使用 vector 。而不是像下面这样定义另一个函数来完成与 matrix_multiplication 相同的工作:
void matrix_multiplication2(std::vector<double>matrix1 ,std::valarray<double> matrix2,
std::vector<std::vector<double> > &result)
我想问问是否有可能以某种方式改变函数的两次不同调用中的输入类型。
最佳答案
"I would like to ask if it is possible to somehow change the input type in two different calls of a function. "
您可以将该函数设为模板(假设参数的所有操作对于传递的任何容器类型都同样有效):
template<typename Container, typename ValArray>
void matrix_multiplication( Container matrix1
, ValArray matrix2
, Container &result) {
// Implementation ...
}
关于c++ - 更改函数的输入类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27488239/