C++已经有许多实现矩阵运算的库,这些库功能齐全,但是有些时候我们可能只需要用到矩阵的加减法等简单的功能,这时候引入这些库显得有些大材小用。这时候,使用STL的vector
类并重载operator+
来实现矩阵或者向量的加减就十分方便。
但是,我们在处理一维和二维,甚至三维的矩阵时,可能会对不同类型的vector
进行重复的重载,这无疑使代码显得有些冗余,而且不易维护。这时,自然想到利用C++的模板来对这一功能进行实现。
#include <iostream>
#include <vector>
#include <exception>
using namespace std;
typedef unsigned int uint;
class different_length : public exception //两相加向量维度不一样的异常
{
private:
string message;
public:
different_length() : message("Different length!") {
}
different_length(string str) : message("Error : " + str) {
}
~different_length<