新石器上機題

求兩個矩陣的乘法

// 你必須定義一個 `main()` 函數入口。
#include <iostream>
#include <vector>
//#include <gtest/gtest.h>
using namespace std;

template <typename T>
vector<vector<T>> multiply(vector<vector<T>> a, vector<vector<T>> b)
{
  vector<vector<T>> c;
  for(int i=0;i<a.size();i++)
  {
   vector<T> vec_tmp;
   for(int j=0;j<b[0].size();j++)
   {
     T sum_tmp = 0;
     for(int k=0;k<a[0].size();k++)
     {
      sum_tmp = sum_tmp + a[i][k]*b[k][j];
     }
     vec_tmp.push_back(sum_tmp);
   }
   c.push_back(vec_tmp);
  }
  return c;
}
/*
TEST(MULTIPLIY,ONE_CASE)
{
  vector<vector<int>> a = {{1,2},{3,4}};
  vector<vector<int>> b = {{1,2},{3,4}};
  vector<vector<int>> c = multiply(a, b);
  EXPECT_EQ(c[0][0], 7);
  EXPECT_EQ(c[0][1], 10);
  EXPECT_EQ(c[1][0], 15);
  EXPECT_EQ(c[1][1], 22);
}*/
  
int main()
{
  vector<vector<int>> a = {{1,2},{3,4}};
  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章