欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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;
        }
    }
};

库函数太多了记不过来怎么办?一般来说熟悉几个常用的就好了,再者编译器也会在你打数组名+小数点时提示有什么库函数使用的。c++ 刷题 心得 vector声明动态一、二、三维数组、初始化以及传递参数
c++ 刷题 心得 vector声明动态一、二、三维数组、初始化以及传递参数

接下来谈谈一些我对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));
相关标签: c++学习记录 c++