c++ - 更改函数的输入类型

标签 c++ input types matrix-multiplication

我在 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/

相关文章:

input - 在Matlab中应如何将一年的季节定义为ANN的输入变量

Java 良好实践 - 接口(interface)类型的声明而不是实现类型的声明

typescript - 导出模型并在模板上使用

C++ cin 在没有我告诉它这样做的情况下打印变量

python - 生成元组列表并使用它

c# - 为什么不能从泛型约束中隐式推断出 `this` 的类型转换?

c++ - 尝试将 .c 文件编译为 .cpp 时出现 VS 2013 错误 C2664

c++ - Windows 中的多播响应未到达套接字

Delphi XE7 的 C++ 函数

c++ - 我的头文件 (.h) 太大,无法在 opengl es 2 中渲染 3d 模型