打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
矩阵类模板
/***********************************************/
矩阵类模板:
template<typename T>
struct Matrix
{
typedef T Value_type;
T* data_; int M_; int N_;
Matrix(int row, int col, T const& v = T()) //构造函数;
: M_(row), N_(col)
{
data_ = (T*)malloc(row*col*sizeof(T));
std::uninitialized_fill(data_, data_ + row*col, v);
}
~Matrix() //析构函数;
{
::free(data_);
}
T& at(int i, int j)
{
return data_[i*N_ + j]; //返回对第i+1行j列元素的引用; 
}
T* operator[](int i) //返回第i行首址;
{
return data_ + i*N_;
}
};
/*************************************************/
/*************************************************/
对称矩阵类模板:
template<typename T>
struct Symatrix {
typedef T Value_type; //T类型别名;
T* data_; int N_;
Symatrix(int n, T const& v = T()) : N_(n) //构造函数;
{
n = (n*n + n)/2;
data_ = (T*)malloc(sizeof(T)*n);
std::uninitialized_fill(data_, data_ + n, v);
}
~Symatrix(void){ ::free(data_); } //析构函数;
T& at(int i, int j) //返回对一个元素的引用;
{
if(i < j) std::swap(i, j);
return data_[(i*i+i)/2 + j];
}
};
/******************************************************/
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
稀疏矩阵的建立和转置
CUDA编程之快速入门
跳槽必刷算法题系列(一)
cvNormalize函数
从 std::list 中 size() 的时间复杂度引出的讨论...
在Visual C++ 6.0上实现矩阵的各种运算
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服