c++使用vector创建二维数组的方法
2022/2/6 1:13:00
本文主要是介绍c++使用vector创建二维数组的方法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
c++使用vector创建二维数组的方法
一次性定义
此种方法适用于每一行的列数都相等的二维数组的定义(与初始化)。
//使用vector一次性完成二维数组的定义(注意:此种方法适用于每一行的列数相等的二维数组) vector<vector<int>> matrix(m, vector<int>(n, -1)); //以下是拆分理解 //创建一维数组matirx,这个数组里有m个元素,元素是int型vector。 vector<vector<int>> matrix(m); //除了定义数组类型及数组大小外,同时给数组中的元素赋值:将元素赋值为大小为n的int型vector。 vector<vector<int>> matrix(m, vector<int>(n)); //除了定义数组类型、数组大小、列的大小,同时给数组列中的元素(或者说,数组中的所有元素)赋值为-1。 vector<vector<int>> matrix(m, vector<int>(n, -1));
插入元素型定义
此种方法适用于每一行的列数都相等或不相等的二维数组的定义(与初始化)。
//比较具有普遍性的写法(注意:此种方法适用于每一行的列数相等的二维数组) vector<vector<int>> matrix;//创建一维数组matirx,这个数组里的元素是int型vector。 int m = 3; //matrix有m行 int n = 10; //matrix有n列 int value = 1; //最终matrix成为二维数组后,其中每个元素的值为1(如果不需要进行初始化,此语句可以省略) for (int i = 0; i < m; ++ i) { vector<int> tmp(n, value); //定义int型一维数组tmp,该数组有n个int型元素,且每个元素的初始值为value matrix.push_back(tmp); //将一维数组tmp(小容器)加入matrix(大容器)中,使之成为matrix的元素,令matrix成为二维数组 } //如果需要每一行的列数不同(虽然一般很少这样做),也可以使用下面这种写法进行定义、初始化 vector<vector<int>> matrix; vector<int> a(10, 1); //单独定义每个小容器的元素个数和元素初始值 vector<int> b(5, 2); vector<int> c(10, 3); matrix.push_back(a); //将每个小容器加入matrix(大容器)中 matrix.push_back(b); matrix.push_back(c);
resize扩充型定义
此种方法适用于每一行的列数都相等或不相等的二维数组的定义(与初始化)。
vector.resize函数的使用说明参考此文档。
//使用vector的resize函数进行二维数组的定义(注意:此种方法适用于每一行的列数相等或不相等的二维数组,调整for循环内的resize函数的参数即可) vector<vector<int>> matrix(m); //创建一维数组matirx,这个数组里有m个元素,元素是int型vector。不能省略m。 for (int i = 0; i < m; ++ i) { matrix[i].resize(10, 1); //使用vector的resize函数,对matrix(大容器)中的每个元素的大小进行更新(可以同时进行初始化)。此处表示:将matrix(大容器)中第i个int型vector的大小定义为10,且其元素均初始化为1。 //如果不需要进行初始化,resize函数的第二个参数可以省略 }
这篇关于c++使用vector创建二维数组的方法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-15PingCAP 黄东旭参与 CCF 秀湖会议,共探开源教育未来
- 2024-05-13PingCAP 戴涛:构建面向未来的金融核心系统
- 2024-05-09flutter3.x_macos桌面os实战
- 2024-05-09Rust中的并发性:Sync 和 Send Traits
- 2024-05-08使用Ollama和OpenWebUI在CPU上玩转Meta Llama3-8B
- 2024-05-08完工标准(DoD)与验收条件(AC)究竟有什么不同?
- 2024-05-084万 star 的 NocoDB 在 sealos 上一键起,轻松把数据库编程智能表格
- 2024-05-08Mac 版Stable Diffusion WebUI的安装
- 2024-05-08解锁CodeGeeX智能问答中3项独有的隐藏技能
- 2024-05-08RAG算法优化+新增代码仓库支持,CodeGeeX的@repo功能效果提升