用vector编写一个矩阵模板
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编写一个矩阵模板相关推荐
- CAD的lisp写法兰,用LISP语言编写一个cad模板
用LISP语言编写一个cad模板 关注:276 答案:2 手机版 解决时间 2021-02-15 20:13 提问者落叶.牵绊着思念 2021-02-14 19:54 用LISP语言编写一个cad ...
- 数据结构第5章例题 若矩阵Am×n中存在某个元素aij满足:aij是第i行中的最小值且是第j列中的最大值,则称该元素为矩阵A的一个鞍点。试编写一个算法,找出A中的所有鞍点。
[例5.1] 若矩阵Am×n中存在某个元素aij满足:aij是第i行中的最小值且是第j列中的最大值,则称该元素为矩阵A的一个鞍点.试编写一个算法,找出A中的所有鞍点. 算法如下: void saddl ...
- 正则表达式 php 模板,PHP中正则表达式回顾(4)--编写一个非常简单而且山寨的smarty模板引擎...
PHP的正则表达式今天就结束了,遥想几年前初次接触的时候,感觉这玩意真心玩不转啊,而时至今日,感觉这也没有什么难以理解的,确实还是有很大进步的,尤其是对smarty模板引擎有了一个更为清晰的认识.正则 ...
- Java黑皮书课后题第8章:*8.27(列排序)用下面的方法实现一个二维数组中的列排序。返回新数组,且原数组保持不变。编写一个测试程序,提示用户输入一个3*3的double型矩阵,显示一个排好的矩阵
*8.27(列排序)用下面的方法实现一个二维数组中的列排序.返回新数组,且原数组保持不变.编写一个测试程序,提示用户输入一个3*3的double型矩阵,显示一个排好的矩阵 题目 题目描述与运行示例 破 ...
- Java黑皮书课后题第8章:*8.26(行排序)用下面的方法实现一个二维数组中的行排序。返回新数组,且原数组保持不变。编写一个测试程序,提示用户输入一个3*3的double型矩阵,显示一个排好的矩阵
*8.26(行排序)用下面的方法实现一个二维数组中的行排序.返回新数组,且原数组保持不变.编写一个测试程序,提示用户输入一个3*3的double型矩阵,显示一个排好的矩阵 题目 题目描述与运行示例 破 ...
- Java黑皮书课后题第8章:*8.23(游戏:找到翻转的单元格)假定给定一个填满0和1的6*6矩阵,所有的行和列都有偶数个1。让用户翻转一个单元,编写一个程序找到哪个单元格被翻转了
*8.23(游戏:找到翻转的单元格)假定给定一个填满0和1的6*6矩阵,所有的行和列都有偶数个1.让用户翻转一个单元,编写一个程序找到哪个单元格被翻转了 题目 题目描述与运行示例 破题 代码 题目 题 ...
- Java黑皮书课后题第8章:*8.22(偶数个1)编写一个程序,产生一个6*6的填满0和1的二维矩阵,显示该矩阵,检测是否每行以及每列中有偶数个1
*8.22(偶数个1)编写一个程序,产生一个6*6的填满0和1的二维矩阵,显示该矩阵,检测是否每行以及每列中有偶数个1 题目 题目描述 破题 代码 题目 题目描述 8.22(偶数个1)编写一个程序,产 ...
- Java黑皮书课后题第8章:8.18(打乱行)编写一个方法,使用下面的方法头打乱一个二维int型数组的行。编写一个测试程序,打乱下面的矩阵
8.18(打乱行)编写一个方法,使用下面的方法头打乱一个二维int型数组的行.编写一个测试程序,打乱下面的矩阵 题目 题目描述 破题 代码 题目 题目描述 8.18(打乱行)编写一个方法,使用下面的方 ...
- Java黑皮书课后题第8章:*8.10(最大的行和列)编写一个程序,在一个4*4的矩阵中随机填入0和1,打印该矩阵,分别找到第一个具有最多1的行和列
*8.10(最大的行和列)编写一个程序,在一个4*4的矩阵中随机填入0和1,打印该矩阵,分别找到第一个具有最多1的行和列 题目 题目描述与运行示例 破题 代码 题目 题目描述与运行示例 8.10(最大 ...
最新文章
- opencv 修改图像数值_opencv 修改图像数值_Python中使用OpenCV读取像素
- 在Windows 64位下为PHP5.6.14安装redis扩展
- ssm整合 报错org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):xxx
- 宁波大学2020计算机技术复试线,宁波大学关于公布2020年硕士研究生复试分数线的通知...
- 计算机在娱乐中的应用有哪些,多媒体技术在娱乐方面的应用
- 首富带你畅谈:蓝绿部署、滚动发布、灰度发布/金丝雀发布
- 如何用VUE从零创建网站
- 问题 D: 寻找丢失的LZY
- 云计算机技术的运用,三分钟为你详细解析云计算技术与应用
- Example 3, 4 of variadic templates
- 2017“CCF科学技术奖”全公布,6位获奖人带来独家经验分享
- 大话设计模式 第十一章 迪米特法则 小黑小白在开车
- [全流程案例]壮汉:3.头部雕刻(ZBrush)
- sae项目服务器,sae服务器 mysql数据库
- as3中得到swf文件中的链接名字
- H3 |组蛋白H3(兔抗体)的3组应用实例
- vnc远程控制软件配置,如何配置vnc远程控制软件实现批量管理服务器
- 将Python文件打包成exe文件(超详细)
- php+微信小程序大学跳蚤市场的微信小程序设计与实现毕业设计源码261620
- Windows10系统重装之U盘安装
热门文章
- PYTHON1.day07
- 5件你可能不知道可以使用 CSS-in-JS 来做的事情
- OSChina 周五乱弹 —— 如何向妹子解释越位
- busybox inittab
- 《社交网站界面设计(原书第2版)》——1.12 传感器在交互中的作用
- 在 ubuntu 下优雅的使用 Sublime Text 3 写 Python
- sysstat工具的用法
- Windows Server 2012 将资源发布到 AD DS
- Android UI控件之Gallery(拖动效果) --拖动式图片浏览
- 现实世界的Windows Azure:就Metanga采访MetraTech公司CEO,Scott Swartz先生