问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

c ++ 实现一个的n*n矩阵类,重载符号*以实现矩阵相乘

发布网友 发布时间:2024-10-20 13:15

我来回答

1个回答

热心网友 时间:2024-11-26 07:15

// 以下实现供参考
#include<stdlib.h>
#include<stdio.h>
class Matrix{
      private:
      int sz;
      int **data;
      public:
      Matrix(){sz=-1;}
      Matrix(int s){
         sz=s;
         data=new int*[sz];
         for(int i=0;i<sz;i++){
                 data[i]=new int[sz];
         }
      }
      Matrix(int s,const int *val){
         sz=s;
         data=new int*[sz];
         for(int i=0;i<sz;i++){
           data[i]=new int[sz];
           for(int j=0;j<sz;j++)
             data[i][j]=val[i*sz+j];
         }
      } 
           
      ~Matrix(){
          for(int i=0;i<sz;i++){
                  delete[] data[i];
          }
          if(sz>0)
                  delete[] data;
      }
      int getSize()const {return sz;}
      void setSize(int n){
           if(sz>0){
                    for(int i=0;i<sz;i++)
                      delete[] data[i];
                    delete[] data;
           } 
           data=new int*[n];
           for(int i=0;i<n;i++)
             data[i]=new int[n];
           sz=n;
      }
      int get(int i,int j)const {return data[i][j];}
      int set(int i,int j,int val){data[i][j]=val;}
      Matrix operator*(const Matrix& mx){
              int i,j,k;
              Matrix prod(sz);
              for(i=0;i<sz;i++){
                for(j=0;j<sz;j++){
                  int sum=0;
                  for(k=0;k<sz;k++){
                    sum+=data[i][k]*mx.get(k,j);
                  }
                  prod.set(i,j,sum);
                }
              }
              return prod;
      }
      Matrix& operator=(const Matrix& mx){
              sz=mx.getSize();
              for(int i=0;i<sz;i++)
              for(int j=0;j<sz;j++)
              set(i,j,mx.get(i,j));
      }
      void print()const{
           for(int i=0;i<sz;i++){
              for(int j=0;j<sz;j++){
              printf("%4d ",data[i][j]);
              }
              printf("\n");
           }
      }
};
int main(){
    const int a[]={1,2,3,4,5,6,7,8,9};
    const int b[]={3,4,5,6,7,8,9,0,1};
    Matrix  m1(3,a),m2(3,b);
    Matrix m(3);
    m=m1*m2;
    m.print();
    system("pause");
    return 0;
}

声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
油烟机价格多少钱一台 为什么真正懂房子的人只买二手房 来看看行家怎么做 二手房怎样看风水好不好?怎样看二手房子风水好坏?买二手房子怎么看风水... awm由哪几个英语组词 【急】英语组词成句5道,求英语高手帮解 我想去苏州打工,我对苏州一点都不了解,请问我该不该去 在苏州一家餐厅打工,每晚都超过规定时间下班,不想继续干了,离职能拿... 上海哪里可以摆地摊卖盒饭 高星级酒店做盒饭说明什么 谁能帮我分析一下:一份六块钱的盒饭有多少利润? 我想买一辆山地车,不知道是美利达好还是捷安特好? ...一直是100%玩多久都不变,然后就自动关机了,怎么办?急急急 小众好用的抗衰产品有哪些值得安利? 为什么我家电会自动关机 看电影不会 一玩游戏就会关机 我的电脑一玩游戏就自动关机 不玩游戏就不自动关机了 怎么回事啊?_百度... 兰芝三重凝萃乳液可以搭配哪些护肤品使用? ...电脑一玩游戏就自动关机 不玩游戏有时也关 是不是电量不足 或 电压... 电压不稳,一玩游戏自动关机?是电压的原因吗,电压确实低了,cpu温度不高... 为什么连接电脑要用电脑城卖的插排 普通的家电用的插座不行吗? OLAY赋活舒纹眼部精华乳的使用感受怎么样? 在线客服#手机电量一直显示百分之五十,用不了多久 我想给我爸爸买洗面奶。45岁。想要一款 焕发活力 的、洗后清清爽爽的... 为什么我手机充电充了很久都是百分之百。 HOT什么时候出道的? 韩国HOT组合出道年份是??? 雪豆泡水后种10天没出出芽是不是豆坏了 最终幻想15游戏攻略独占版玩家必读 最终幻想15第一章为生活费烦恼的王子攻略流程介绍_最终幻想15第一章... 最终幻想15简记 茅山得撒迎客乡村酒店的入住体验怎么样? ...元到2000元之间都可以了。是买捷安特好还是美利达好,帮我推荐一_百... 电脑自动重启与插头有关系吗 电脑为什么突然自动重启 想组装一台电脑的主机,需要什么 热水器为啥一停水就不出水了 高铁上能正常使用插座吗? 音箱如何连接主机 这个小主机怎么接个外接音箱? 是谁的孩子 秦时丽人明月心嬴政为什么要杀 上下五千年想刺杀秦始皇的人是谁 光遇爱心信封怎么获得 爱心信件背饰获取方法 启动netpas时为什么出现“无法设定IP地址”? ...月了,每天都是半夜三点才睡着,这样下去会不会挂掉啊?哪位有安眠的... 人身保险利益是指什么? 深圳相信电子商务有限公司是做什么的?他们的从家优品是什么软件_百度知 ... 杭州众壕电子商务有限公司怎么样? 杭州谷仓猫科技有限公司怎么样? 南康普希德装备是美康建设公司承建的吗? 江西美康陶瓷有限公司怎么样? 南昌市美康实业有限公司怎么样?
  • 焦点

最新推荐

猜你喜欢

热门推荐