初步完成的c++二维矩阵容器
小小的二维矩阵,用到了模板、智能指针,列表等
#include <iostream>
#include <memory>
#include <vector>
using namespace std;
template<typename T>
class Array2D {
public:
Array2D() {};
Array2D(int m, int n, T value):_m(m),_n(n) {
grid = make_shared<vector<shared_ptr<vector<T>>>>(m,
make_shared<vector<T>>(n, value));
}
Array2D(Array2D& array2d) {
_m = array2d.getM();
_n = array2d.getN();
grid = make_shared<vector<shared_ptr<vector<T>>>>(_m,
make_shared<vector<T>>(_n, 0));
for (int i = 0; i < _m; i++) {
for (int j = 0; j < _n; j++)
grid->at(i)->at(j) = array2d.getValue(i, j);
}
}
~Array2D() {};
inline int getM() { return _m; }
inline int getN() { return _n; }
T getValue(int i, int j){
return grid->at(i)->at(j);
}
private:
int _m, _n;
shared_ptr<vector<shared_ptr<vector<T>>>>grid;
};
int main()
{
std::cout << "Hello World!\n";
Array2D<double> mat(300, 200, 1.5);
auto mat2 (mat);
for (int i = 0; i < mat2.getM(); i++) {
for (int j = 0; j < mat2.getN(); j++)
cout << mat2.getValue(i,j) << " ";
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具