对于运算符*的重载实现向量之前的乘运算设向量X(x1,x2,x2)和Y(y1,y2,y3),实现他们之前的乘法定义为:X*Y
对于运算符*的重载实现向量之前的乘运算
设向量X=(x1,x2,x2)和Y=(y1,y2,y3),实现他们之前的乘法定义为:
X*Y=x1*y1+x2*y2+x3*y3
对于运算符*的重载实现向量之前的乘运算
[解决办法]
之极定义个向量的类,然后重载运算符*。有什么问题?
[解决办法]
一下代码供参考:
- C/C++ code
#include <iostream>#include <vector>using namespace std;template <typename T>class Vector{private: vector<T> vec;public: Vector() { vec.clear(); } void add_element(const T& element) { vec.push_back(element); } T operator * (const Vector& v) { if(vec.size() != v.vec.size()) { cout << "Two Vector's size do not match" << endl; return 0; } T product = 0; for(int i = 0; i < vec.size(); ++i) { product += vec[i] * v.vec[i]; } return product; }};int main(int argc, char* argv[]){ Vector<int> v1; Vector<int> v2; v1.add_element(1); v1.add_element(2); v1.add_element(3); v2.add_element(2); v2.add_element(3); v2.add_element(4); int a = v1 * v2; cout << a << endl; return 0;}
[解决办法]
const vector operator * (const vector &, const vector &); 