vector可以写二维以上的矩阵么?这个问题我在看完vector和string的时候就在思索。应该怎么写?采用和二维数组类似的思想,如果vector容纳的vector不就可以了,而且访问操作要比数组方便不少。程序如下:

#include<iostream>
#include<vector>
using namespace std;
template<typename T> //模板
class matrix {
public:matrix(int rows, int cols) :arr(rows){/*for (rsize_t t = 0;t < rows;t++)arr[t].resize(cols);*/for (auto &thisRow : arr) //auto自动推断thisRow.resize(cols);}matrix(vector<vector<T>> v):arr{v} //复制拷贝构造函数{}matrix(vector<vector<T>> &&v) :arr{ std::move(v) }//移动拷贝构造函数{}const vector<T> &operator[](int row)const//重载下标引用{return arr[row];}vector<T>& operator[](int row){return arr[row];}               int numrows()const //行数{return arr.size();}int numcols()const   //列数{return numrows() ? arr[0].size() : 0;}
private:vector<vector<T>>arr;
};

这样就实现了。

用vector编写一个矩阵模板相关推荐

  1. CAD的lisp写法兰,用LISP语言编写一个cad模板

    用LISP语言编写一个cad模板 关注:276  答案:2  手机版 解决时间 2021-02-15 20:13 提问者落叶.牵绊着思念 2021-02-14 19:54 用LISP语言编写一个cad ...

  2. 数据结构第5章例题 若矩阵Am×n中存在某个元素aij满足:aij是第i行中的最小值且是第j列中的最大值,则称该元素为矩阵A的一个鞍点。试编写一个算法,找出A中的所有鞍点。

    [例5.1] 若矩阵Am×n中存在某个元素aij满足:aij是第i行中的最小值且是第j列中的最大值,则称该元素为矩阵A的一个鞍点.试编写一个算法,找出A中的所有鞍点. 算法如下: void saddl ...

  3. 正则表达式 php 模板,PHP中正则表达式回顾(4)--编写一个非常简单而且山寨的smarty模板引擎...

    PHP的正则表达式今天就结束了,遥想几年前初次接触的时候,感觉这玩意真心玩不转啊,而时至今日,感觉这也没有什么难以理解的,确实还是有很大进步的,尤其是对smarty模板引擎有了一个更为清晰的认识.正则 ...

  4. Java黑皮书课后题第8章:*8.27(列排序)用下面的方法实现一个二维数组中的列排序。返回新数组,且原数组保持不变。编写一个测试程序,提示用户输入一个3*3的double型矩阵,显示一个排好的矩阵

    *8.27(列排序)用下面的方法实现一个二维数组中的列排序.返回新数组,且原数组保持不变.编写一个测试程序,提示用户输入一个3*3的double型矩阵,显示一个排好的矩阵 题目 题目描述与运行示例 破 ...

  5. Java黑皮书课后题第8章:*8.26(行排序)用下面的方法实现一个二维数组中的行排序。返回新数组,且原数组保持不变。编写一个测试程序,提示用户输入一个3*3的double型矩阵,显示一个排好的矩阵

    *8.26(行排序)用下面的方法实现一个二维数组中的行排序.返回新数组,且原数组保持不变.编写一个测试程序,提示用户输入一个3*3的double型矩阵,显示一个排好的矩阵 题目 题目描述与运行示例 破 ...

  6. Java黑皮书课后题第8章:*8.23(游戏:找到翻转的单元格)假定给定一个填满0和1的6*6矩阵,所有的行和列都有偶数个1。让用户翻转一个单元,编写一个程序找到哪个单元格被翻转了

    *8.23(游戏:找到翻转的单元格)假定给定一个填满0和1的6*6矩阵,所有的行和列都有偶数个1.让用户翻转一个单元,编写一个程序找到哪个单元格被翻转了 题目 题目描述与运行示例 破题 代码 题目 题 ...

  7. Java黑皮书课后题第8章:*8.22(偶数个1)编写一个程序,产生一个6*6的填满0和1的二维矩阵,显示该矩阵,检测是否每行以及每列中有偶数个1

    *8.22(偶数个1)编写一个程序,产生一个6*6的填满0和1的二维矩阵,显示该矩阵,检测是否每行以及每列中有偶数个1 题目 题目描述 破题 代码 题目 题目描述 8.22(偶数个1)编写一个程序,产 ...

  8. Java黑皮书课后题第8章:8.18(打乱行)编写一个方法,使用下面的方法头打乱一个二维int型数组的行。编写一个测试程序,打乱下面的矩阵

    8.18(打乱行)编写一个方法,使用下面的方法头打乱一个二维int型数组的行.编写一个测试程序,打乱下面的矩阵 题目 题目描述 破题 代码 题目 题目描述 8.18(打乱行)编写一个方法,使用下面的方 ...

  9. Java黑皮书课后题第8章:*8.10(最大的行和列)编写一个程序,在一个4*4的矩阵中随机填入0和1,打印该矩阵,分别找到第一个具有最多1的行和列

    *8.10(最大的行和列)编写一个程序,在一个4*4的矩阵中随机填入0和1,打印该矩阵,分别找到第一个具有最多1的行和列 题目 题目描述与运行示例 破题 代码 题目 题目描述与运行示例 8.10(最大 ...

最新文章

  1. opencv 修改图像数值_opencv 修改图像数值_Python中使用OpenCV读取像素
  2. 在Windows 64位下为PHP5.6.14安装redis扩展
  3. ssm整合 报错org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):xxx
  4. 宁波大学2020计算机技术复试线,宁波大学关于公布2020年硕士研究生复试分数线的通知...
  5. 计算机在娱乐中的应用有哪些,多媒体技术在娱乐方面的应用
  6. 首富带你畅谈:蓝绿部署、滚动发布、灰度发布/金丝雀发布
  7. 如何用VUE从零创建网站
  8. 问题 D: 寻找丢失的LZY
  9. 云计算机技术的运用,三分钟为你详细解析云计算技术与应用
  10. Example 3, 4 of variadic templates
  11. 2017“CCF科学技术奖”全公布,6位获奖人带来独家经验分享
  12. 大话设计模式 第十一章 迪米特法则 小黑小白在开车
  13. [全流程案例]壮汉:3.头部雕刻(ZBrush)
  14. sae项目服务器,sae服务器 mysql数据库
  15. as3中得到swf文件中的链接名字
  16. H3 |组蛋白H3(兔抗体)的3组应用实例
  17. vnc远程控制软件配置,如何配置vnc远程控制软件实现批量管理服务器
  18. 将Python文件打包成exe文件(超详细)
  19. php+微信小程序大学跳蚤市场的微信小程序设计与实现毕业设计源码261620
  20. Windows10系统重装之U盘安装

热门文章

  1. PYTHON1.day07
  2. 5件你可能不知道可以使用 CSS-in-JS 来做的事情
  3. OSChina 周五乱弹 —— 如何向妹子解释越位
  4. busybox inittab
  5. 《社交网站界面设计(原书第2版)》——1.12 传感器在交互中的作用
  6. 在 ubuntu 下优雅的使用 Sublime Text 3 写 Python
  7. sysstat工具的用法
  8. Windows Server 2012 将资源发布到 AD DS
  9. Android UI控件之Gallery(拖动效果) --拖动式图片浏览
  10. 现实世界的Windows Azure:就Metanga采访MetraTech公司CEO,Scott Swartz先生