C++中的vector二维数组(全面详解)
创作时间:
作者:
@小白创作中心
C++中的vector二维数组(全面详解)
引用
CSDN
1.
https://blog.csdn.net/2301_77125473/article/details/142953766
C++中的vector二维数组是一种非常实用的数据结构,它允许我们以矩阵的形式存储和操作数据。本文将从概念、格式、初始化方法、使用技巧等多个方面全面解析vector二维数组,并通过一个经典的杨辉三角形问题来加深理解。
二维数组概念
多个数组叠加,形成一个有行有列的矩形数组。
在C语言中,可以开辟一个二维数组,而在C++中,我们可以使用vector来实现类似的功能。
二维数组格式
vector<vector<int>> table(size1, vector<int>(size2, 0));
代码解释:由图可以看出上面代码是由三个vector
二维数组的初始化
在创建的时候就进行初始化
vector<vector<int>> v1(row, vector<int>(col));
row:行数,col:列数,初始值:0
resize初始化
vector<vector<int>> v(row);
for(int i=0;i<row;i++) {
v[i].resize(col);
}
构造v的时候只给行数,列数用resize开辟
vector<vector<int>> v;
v.resize(row);
for(int i=0;i<row;i++){
matrix[i].resize(col);
}
构造v的时候不给行数不给列数,都用resize来开辟
vector<vector<int>> v1(row, vector<int>(col, N));
与第一个一样,只不过N是初始值,而第一个什么也不给就默认初始为‘0’
二维数组的使用
插入一行
//插入一行数组:将in_row数组插入到第2行后面
vector<int> in_row(5,6);//初始化一个数组,包含5个元素并且全为6
v.insert(v.begin()+2,in_row);
插入一列
//插入一列数据到第二列后面
for(int i=0;i<v.size();i++)
{
v[i].insert(v[i].begin()+2,9);
}
删除一行
//删除从第二行后面到第三行
v.erase(v.begin() + 2, v.begin() + 3);
删除一列
//删除a的第二列
for (int i = 0; i < a.size(); i++)
{
a[i].erase(a[i].begin() + 2, a[i].begin() + 3);
}
二维数组经典例题:杨辉三角形
题目:杨辉三角形
链接:118. 杨辉三角
https://leetcode.cn/problems/pascals-triangle/
class Solution {
public:
vector<vector<int>> generate(int numRows) {
vector<vector<int>> vv(numRows);//定义一个二维数组,初始化行数
for(size_t i = 0;i < vv.size();i++){
vv[i].resize(i+1,0);//手动开辟空间
vv[i][0] = vv[i][vv[i].size()-1] = 1;//将每一行的起始位置和终点位置设置为1
}
for(size_t i = 0;i < vv.size();i++){
for(size_t j = 0;j < vv[i].size();j++){
if(vv[i][j] == 0){
vv[i][j] = vv[i-1][j]+vv[i-1][j-1];//推导出递推公式并转化为代码
}
}
}
return vv;
}
};
热门推荐
绩效计算中如何处理异常数据?
期货量比是什么?量比指标如何辅助交易决策?
如何了解国外黄金市场的情况?这些情况对国内市场有何启示?
情感的共鸣,心灵的触动 —— 万人落泪的《西海情歌》
研究人员开发出基于二维半导体制造高性能晶体管的方法
激光脱毛还是光子脱毛?一文详解两种脱毛技术的区别
沈飞六代机独创空中变形技术,搭载高超音速导弹或将上舰福建舰
慢性糜烂性胃炎吃什么食物好
探寻失落之地“昆仑山”,修仙修道的宝地,神秘仙境是否存在?
中国文化掌故:神秘的三座仙山在哪?
全栈杂谈第一期:什么是计算机中的并发
《鬼谷八荒》仙力点获取攻略:从仙祠任务到修改器使用
三级防割跟五级防割有什么区别
银行承兑汇票出票办理全流程详解
哪些植物采用无性生殖方式?
地暖机与空调有什么区别,舒适家居如何选?
东莞银瓶山首次发现珍稀“紫霞仙子”!这个“氧气公园”等你来玩
6 种加速肌肉生长的优质碳水
增肌食物前十排名:从蛋白质到碳水,打造肌肉的完美饮食指南
吃药到底该怎么喝水?很多人没做对!
如何打造适宜的睡眠环境
肝胆外科疾病健康教育
2025中科大强基计划招生简章:开启卓越人才培养之旅
2024年3月Web3游戏报告:市场趋势与投资动态
各国隐身战机都仿F-22?歼-20的设计究竟有何不足?真相在此!
如何用F12定位Web元素
顽固性失眠自救指南:自然找回香甜睡眠
可以自己改名字吗?一文了解改名的法律程序及注意事项
手掌心发热是病吗?医生的专业解答来了
八字属性与五行查询:探索传统命理智慧