uda 3.C++二维向量
二维向量
接下来,你将使用向量来存储矩阵。就像 Python 使用列表列表来存储矩阵一样,C++ 使用的是向量的向量。用于声明二维向量的语法有点复杂。
假设你正在使用 Python,并且想存储一个 3 乘 5 的矩阵。你可以这么写:
matrixexample = [[2,1,5], [7,9,2], [16,5,9], [5,2,1], [1,2,4]]
在 C++ 中,你可以将矢量附加到矢量来创建一个类似的结构。下面是 Python 和 C++ 代码的比较。我们来看看:
代码解释
首先,这一行
vector < vector <int> > twodvector;
声明了一个叫做 twodvector 的空二维向量。有几件事要注意:
- 就像 C++ 中的所有变量一样,你必须声明向量中将使用哪种类型的值。在本例中,twodvector 变量将使用整数。
- 注意括号之间的空格
< vector <int> >
。如果空格不正确,程序可能无法运行。
然后,声明一个叫做 singlerow 的一维向量。singlerow 向量的形式为 [2, 2, 2]。
vector<int> singlerow (3,2);
然后 singlerow 向量被追加到 twodvector 五次:
for (int i = 0; i < 5; i++) {twodvector.push_back(singlerow);}
最终将得到与 Python 代码中一样的二维结构。运行这段 C++代码后,终端会输出如下结果:
2 2 2
2 2 2 2 2 2 2 2 2 2 2 2
另一种设置向量的方法
以下是前面的例子中设置向量的另一种方法:
vector < vector <int> > twodvector (5, vector <int> (3, 2));
语法要稍微复杂一点。但是,如果从括号内往外看,你会发现它实际上已经具备所有功能。
这一行:
vector <int> (3, 2)
可以设置一个整数向量,如 [2, 2, 2]。所以,即使你看不到内部的向量,代码的功能依然是这样的:
vector < vector <int> > twodvector (5, [2, 2, 2]); `
然后,代码将[2, 2, 2] 五次应用到 twodvector 变量中:
[[2,2,2],
[2,2,2], [2,2,2], [2,2,2], [2,2,2]]
请记住,只有 Python 才会用方括号[]表示向量或矩阵。较新版本的 C++可以使用大括号来表示矢量{},但 C++ 的较早版本没有对应的表示形式。
像下面这样的代码无法在 C++ 中运行:
vector < vector <int> > twodvector (5, [2, 2, 2]); `
二维向量与 for 循环
由于二维向量只是向量内的向量,因此,二维向量和一维向量具有相同的方法 。
这就是例子中 cout 代码的作用原理:
for (int row = 0; row < twodvector.size(); row++) {for (int column = 0; column < twodvector[0].size(); column++) { cout << twodvector[row][column] << " "; } cout << endl;
输入twodvector.size()
时,会给出外部向量的大小。外部向量有五个元素,它们表示矩阵中的行数:
{2 2 2}
{2 2 2} {2 2 2} {2 2 2} {2 2 2}
当你输入twodvector[0].size()
时,你实际上是在获取外部向量的第一个元素,[2 2 2],并请求这个向量的大小,在本例中,大小为 3。因此,for 循环实际如下:
for (int row = 0; row < 5; row++) {for (int column = 0; column < 3; column++) { cout << twodvector[row][column] << " "; } cout << endl;
转载于:https://www.cnblogs.com/fuhang/p/9077624.html
uda 3.C++二维向量相关推荐
- python二维向量运算模拟_python二维向量运算_[VB.NET][C#]二维向量的基本运算
前言 在数学中,几何向量是指具有大小和方向的几何对象. 在编程中,向量有着广泛的应用,其作用在图形编程和游戏物理引擎方面尤为突出. 第一节 构造函数 通过创建一个二维向量的类(或结构体),实现向量的表 ...
- LeetCode 251. 展开二维向量
文章目录 1. 题目 2. 解题 1. 题目 请设计并实现一个能够展开二维向量的迭代器.该迭代器需要支持 next 和 hasNext 两种操作.. 示例: Vector2D iterator = n ...
- C++:二维数组和二维向量的长度
对于一个二维数组: int mm[3][5] = { { 1,2,3,4,5 },{ 5,6,7,8,9 },{ 9,10,11,12,13 } }; int toatlnums = sizeof(m ...
- 用vector实现二维向量
如果一个向量的每一个元素是一个向量,则称为二维向量,例如 [cpp] view plain copy vector<vector<int> >vv(3, vector< ...
- c++中二维数组与二维向量的长度
对于一个二维数组: int mm[3][5] = { { 1,2,3,4,5 },{ 5,6,7,8,9 },{ 9,10,11,12,13 } }; int toatlnums = sizeof(m ...
- 从二维向量跟虚数的区别到欧拉公式,复指数函数
正如我们所知道的,二维向量和虚数都可以写为[a,b]这样子的形式,在平面坐标和复平面都可以都有一个点与之对 应,他们之间是一样的吗? 二维向量的两个数是完全独立变量,两者之间没有什么关系,向量的含义比 ...
- Python 编程训练2:二维向量
目标 定义一个 Python 类名为 V2,用于表示二维向量,支持下列向量运算: 由两个实数创建一个二维向量:如:v = V2(1.1, 2.2) 将一个向量转换为字符串形式(使用__str__方法) ...
- 面向对象程序设计实践(C++)——二维向量
目录 概述 实现 `Vec2D.h` `Vec2D.cpp` 测试 `Main.cpp` 运行情况 概述 设计一个类,实现对二维向量的存储及实现.其类中存储了向量的坐标,以及一些常见的操作. 实现 V ...
- 《UnityAPI.Vector2二维向量》(Yanlz+Unity+SteamVR+云技术+5G+AI+VR云游戏+Vector2+Normalized+Lerp+Dot+立钻哥哥++OK++)
<UnityAPI.Vector2二维向量> 版本 作者 参与者 完成日期 备注 UnityAPI_Vector2_V01_1.0 严立钻 2020.07.09 #<UnityAPI ...
最新文章
- STM32的IIC应用详解3
- 使用DOS命令找到占用80端口的程序,关闭该程序
- 将 Net 项目升级 Core项目经验:(一)迁移Net项目为Net Core\Standard项目
- redis所有版本下载地址
- linux网络编程之通信协议格式
- python 串口助手 简书_python用pyserial读取串口问题解决
- Mysql for linux 安装
- 强大的DataGrid组件[12]_分组(Group)——Silverlight学习笔记[20]
- JavaScript学习笔记(三)——从简单模仿到创作
- PL/SQL学习笔记之存储过程
- Android Toast小解
- dialog下textarea滚动条不显示
- VBA自动创建数据透视表
- SAP HR 导出PA0185 身份证件信息
- 气体涡轮流量计和涡街流量计的区别
- 【JY】橡胶支座的简述和其力学性能计算
- 【毕业设计】基于STM32及OpenMV的云台追踪装置
- 深度学习应用13电影评论情感分析
- 常用键盘快捷键 键盘快捷键大全
- White Box Cartoonization 人工智能动画化0.0
热门文章
- boost::hana::max用法的测试程序
- boost::hana::list用法的测试程序
- GDCM:DICOM文件转储到Siemens Base64
- Boost:bind的noexcept成员函数的type <>语法的测试程序
- ITK:对图像进行升采样
- VTK:模型之MarchingSquares
- VTK:网格之TableBasedClipDataSetWithPolyData2
- VTK:图片之NegativeIndices
- OpenCV在G-API上移植各向异性图像分割
- C++Quick sort快速排序的实现算法之二(附完整源码)