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;
}
};
热门推荐
甲流症状减轻后能剧烈运动吗?
赔付实例:在美国,老人意外摔倒就医,旅行保险兜底了~
脑梗后抑郁症表现及应对指南
地下城与勇士奶妈角色大揭秘:为何她们是团队中不可或缺的存在?
科学家研发再生牙齿的先锋药,让老人牙齿失而复得
老人牙齿掉光了装什么假牙经济实惠?老人全口假牙费用一览
做好这几件事 帮你把亏掉的气血补回来
世界卫生组织发布最新全球健康数据报告:三个十亿目标取得重要进展
没有一个人能饿着肚子走出这里,带你开逛亚洲最大的星光夜市
治咽喉炎的五种常用口服液
如何建立良好的中介与客户关系?这种关系如何促进交易成功?
房地产中介销售入门培训:了解市场动态,把握商机
办公室能放镜子吗?解析风水与实用性的双重作用
如何评估基金的市场表现和潜力?这些评估标准有哪些局限性?
郑州最新平均工资大揭秘:你的收入处于哪个水平?
智慧体育公园在提升运动体验中的作用
如何缓解隔代育儿冲突呢?
意大利那不勒斯游记|披萨的故乡,那不勒斯究竟有多迷人?一次感官与历史的沉浸之旅
中医穴位治疗股骨头坏死:环跳穴和肾俞穴的神奇功效
股骨头坏死按摩穴位
雷军倡导健身房运动,引发广泛支持和深度讨论
吃什么水果可以清火
信息披露不及时 诺德股份再收监管警示函
回归分析技术:2024 年超越线性回归
中医推荐5款润肤养颜药膳,让你从内而外焕发光彩
印度街头小吃频现食品安全问题,政府出手整治能否见效?
黄酒和啤酒的酒精度、嘌呤含量及热量对比
犯罪微电影法院:现代法律教育与司法实践的新探索
番茄的育苗栽培技术
射手座的爱情观与其个性特征的关系探讨