C++实现的线性代数矩阵计算

/**
 *  线性代数矩阵计算
 *  实现功能:行列向量获取,子矩阵获取,转置矩阵获取,
 *          行列式计算,转置伴随矩阵获取,逆矩阵计算
 *
 *  Copyright 2011 Shi Y.M. All Rights Reserved
 */

#ifndef MATICAL_TMATRIX_H_INCLUDED
#define MATICAL_TMATRIX_H_INCLUDED

#include <memory.h>

namespace matical
{

template<typename T>
class TMatrix
{
private:
    T * m_Elems;
    int m_Rows;
    int m_Cols;

public:
    typedef T ElemType;

public:

    TMatrix() : m_Elems(NULL), m_Rows(0), m_Cols(0) {}
    TMatrix(int rows, int cols) : m_Rows(rows), m_Cols(cols) {
        m_Elems = new ElemType[m_Rows * m_Cols];
        memset(m_Elems, 0, sizeof(ElemType) * m_Rows * m_Cols);
    }
    // 生成n阶方阵
    TMatrix(int n) : m_Rows(n), m_Cols(n){
        m_Elems = new ElemType[m_Rows * m_Cols];
        memset(m_Elems, 0, sizeof(ElemType) * m_Rows * m_Cols);
    }

    TMatrix(const TMatrix& m) : m_Rows(m.Rows()), m_Cols(m.Cols()) {
        m_Elems = new ElemType[m_Rows * m_Cols];
        memcpy(m_Elems, m.m_Elems, sizeof(ElemType) * m_Rows * m_Cols);
    }
    virtual ~TMatrix() {
        if ( m_Elems ) delete[] m_Elems;
        m_Elems = NULL;
        m_Rows  = 0;
        m_Cols  = 0;
    }

public:

    int     Rows() const { return m_Rows;}
    int    

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值