c++ 刷题 心得 vector声明动态一、二、三维数组、初始化以及传递参数
程序员文章站
2022-05-28 21:48:32
...
题目描述
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
class Solution
{
public:
bool Find(int target, vector<vector<int> > array)
{
}
};
这题考的就是vector的知识点,关键在于题目没有给出vector二维数组的行和列,需要使用vector库里的函数size()和empty(),
class Solution
{
public:
bool Find(int target, vector<vector<int> > array)
{
//判断数组是否为空
if(array.empty()==1)
{
return false;
}
else
{
//获取行数
int row=array.size();
//获取列数
int col=array[0].size();
for(int i=0;i<row;i++)
{
for(int j=0;j<col;j++)
{
if(array[i][j]==target)
return true;
}
}
return false;
}
}
};
库函数太多了记不过来怎么办?一般来说熟悉几个常用的就好了,再者编译器也会在你打数组名+小数点时提示有什么库函数使用的。
接下来谈谈一些我对vector了解,
1 、要使用vector就要在程序开头处加上#include
2 、 vector 可以用来定义动态的数组
如
#include<iostream>
#include<vector>
using namespace std;
//传递实参要加 &
void test(vector<int>& A1, vector < vector<int>>& A2, vector<vector<vector<int> > >& A3)
{
cout << "ok";
return;
}
int main()
{
int m, n ,o;
cout<<"输入三个整数:"<<endl;
cin >> m>>n>>o ;
//动态定义一维数组并初始化元素全为0
vector<int>array(m);
//动态定义二维数组并初始化元素全为0
vector<vector<int>> array2(m, vector<int>(n));
//动态定义三维数组并初始化元素全为0
vector<vector<vector<int> > > array3(m, vector<vector<int> >(n, vector<int>(o)));
test(array, array2, array3);
return 0;
}
使用 vector定义的数组传递参数,注意传递的是实参还是形参,参考:参数传递的三种方式
void test(vector<int>& A, vector < vector<int>>& A2, vector<vector<vector<int> > >& A3)
vector数组元素的初始化:
//动态定义一维数组并初始化元素全为10
vector<int>array(m,10);
//动态定义二维数组并初始化元素全为11
vector<vector<int>> array2((m,11),vector<int>(n,11));
上一篇: jQuery 效果:图片突出显示
下一篇: jQuery 实现图片高亮显示效果