前言
在本文章中,我们将要详细介绍一下C++中vector关于动态二维数组vector<vector>。
一、杨辉三角的引入
我们在介绍动态二维数组之前,先来看一下这道题目
在本题目中,我们很容易发现规律,两边数据为1,剩下的按照=一定的规律相加得来。
我们这样看或许不方便,我们来调整一下
我们利用c语言的方式很容易就会想到,这是一个二维数组。需要对数组内数据进行操作,最后返回这个二维数组。
但是我们来看一下C++的返回值
这是一个vector容器,里边还套用了一个vector。
二、底层逻辑
我们来看一下正常的vector
那么对于vector<vector>,我们仅把图中的数据1,2,3,4变换成一个vector不就可以了吗,我们画图来看一下
我们插入元素来看一下
三、代码实现
class Solution {
public:
vector<vector<int>> generate(int n)
{
vector<vector<int>> vv(n);
//元素全部设置为1
for(int i=0;i<n;i++)
{
vv[i].resize(i+1,1);
}
//修改数据
for(int i=2;i<n;i++)
{
for(int j=1;j<i;j++)
{
vv[i][j]=vv[i-1][j-1]+vv[i-1][j];
}
}
return vv;
}
};
总结
以上就是今天要讲的内容,本文仅仅详细介绍了C++动态二维数组vector<vector>,希望对大家的学习有所帮助,仅供参考 如有错误请大佬指点我会尽快去改正 欢迎大家来评论~~ 😘 😘 😘 😘