精华内容
下载资源
问答
  • 给定一个 n × n 的矩阵,求它顺时针旋转 90 度的结果,且必须在原矩阵上修改(in-place)。...vector> using namespace std; class Matrix { public:Matrix(); ~Matrix(); void rotate(vector<vecto

    记录直接声明并定义二维数组vector:

     vector<vector<string>> tickets = { {"MUC""LHR"}, { "JFK" "MUC" }, { "SFO" "SJC" }, { "LHR" "SFO" } };
    

    给定一个 n × n 的矩阵,求它顺时针旋转 90 度的结果,且必须在原矩阵上修改(in-place)。
    怎样能够尽量不创建额外储存空间呢?

    #pragma once
    #ifndef MATRIX_H_INCLUDE
    #define MATRIX_H_INCLUDE
    #include <vector>
    using namespace std;
    
    class Matrix
    {
    public:Matrix();
    	  ~Matrix();
    	  void rotate(vector<vector<int> >& vec);
    private:
    	
    };
    
    #endif // !MAXT
    

    注释掉的初始化和利用迭代器输出vector二维数组都是可运行的

    void main()
    {
    	int n = 3;
    	int temp;
    	vector<vector<int> > vec(n);
    	Matrix matrix;
    
    	//初始化vector
    	//for (int i = 0; i < n; i++)
    	//{
    	//	vec[i].resize(n);
    	//}
    	
    	//输入
    	printf("INPUT:[\n");
    	for (int i = 0; i < n; i++)
    	{
    		printf("[");
    		for (int j = 0; j < n; j++)
    		{
    			cin >> temp;
    			vec[i].push_back(temp);
    				
    		}
    		printf("] ");
    	}
    	printf("]");
    	cout << endl;
    	//cout << vec[2].back();
    	//矩阵旋转90
    	matrix.rotate(vec);
    	
    	//使用迭代器
    	/*vector<int>::iterator it;	//it 是一个地址 
    	vector<vector<int>>::iterator iter;
    	vector<int> vec_tmp;
    
    	cout << "OUTPUT : " << endl;
    	for (iter = vec.begin(); iter != vec.end(); iter++)
    	{
    		vec_tmp = *iter;
    		for (it = vec_tmp.begin(); it != vec_tmp.end(); it++)
    			cout << *it << " ";
    		cout << endl;
    	}*/
    	
    	//输出
    	printf("OUTPUT:[\n");
    	for (int i = 0; i < n; i++)
    	{
    		printf("[");
    		for (int j = 0; j < n; j++)
    		{
    			cout<< vec[i][j]<<" ";
    
    		}
    		printf("],\n");
    	}
    	printf("]");
    }
    
    展开全文
  • 其实那个dp二维数组,没有必要 class Solution { public: int maxProduct(vector<int>& nums) { int n=nums.size(); int m=nums[0]; int big=m; int small=m; for(int i=1;i;i++) { int tmpbig=big; ...

    Given an integer array nums, find the contiguous subarray within an array (containing at least one number) which has the largest product.

    Example 1:

    Input: [2,3,-2,4]
    Output: 6
    Explanation: [2,3] has the largest product 6.
    

    Example 2:

    Input: [-2,0,-1]
    Output: 0
    Explanation: The result cannot be 2, because [-2,-1] is not a subarray.

    题目链接:https://leetcode.com/problems/maximum-product-subarray/

    class Solution {
    public:
        int maxProduct(vector<int>& nums) {
           int n=nums.size();
            int m=nums[0];
            vector<vector<int>> dp(n,vector<int>(2,0));
            dp[0][0]=m;
            dp[0][1]=m;//dp[i][0]最大值,dp[i][0]最小值
            
            for(int i=1;i<n;i++)
            {
                dp[i][0]=max(nums[i],max(nums[i]*dp[i-1][0],nums[i]*dp[i-1][1]));
                dp[i][1]=min(nums[i],min(nums[i]*dp[i-1][0],nums[i]*dp[i-1][1]));
                if(dp[i][0]>m)
                    m=dp[i][0];
            }
            return m;
        }
    };

    其实那个dp二维数组,没有必要

    class Solution {
    public:
        int maxProduct(vector<int>& nums) {
           int n=nums.size();
            int m=nums[0];
            int big=m;
            int small=m;
            for(int i=1;i<n;i++)
            {
                int tmpbig=big;
                big=max(nums[i],max(nums[i]*big,nums[i]*small));
                small=min(nums[i],min(nums[i]*tmpbig,nums[i]*small));//一定是上一次的big,也就是tmpbig
                if(big>m)
                    m=big;
            }
            return m;
        }
    };

     

    展开全文
  • C++ vector 二维数组初始化方式

    万次阅读 2019-06-30 15:00:54
    原文:... 在LeetCode刷算法的时候发现,使用vector<vector<int>> 时如果声明时不初始化,会报空指针引用错误:reference binding to null pointer of type 'value_type'。 根据《...

    原文:https://blog.csdn.net/weixin_37832275/article/details/84573267

    在LeetCode刷算法的时候发现,使用vector<vector<int>> 时如果声明时不初始化,会报空指针引用错误:reference binding to null pointer of type 'value_type'。

    根据《C++ primer第五版》P40:
    默认初始化:

    如果是内置类型的变量未被显示初始化,它的值由定义的位置决定。定义于任何函数体之外的变量被初始化为0。一种例外情况是,定义在函数体内部的内置类型变量将不被初始化。一个未被初始化的内置类型变量的值是未定义的,如果试图拷贝或者其他形式访问此类型将引发错误。

    初始化方法:
    int numRows=10,zone=5;//层数,每层需要的空间
    vector<vector<int>> vec(numRows, vector<int>());//初始层数,赋值
    for (int i = 0; i < numRows; i++) {
        vec[i].resize(zone);
    }
     

    展开全文
  • vector二维数组初始化

    千次阅读 2018-12-05 18:28:37
    int main() { vector<vector<int> >num = { {1,1,1,0,1,1},{1,0,1,1,1,1},{1,1,1,0,0,1},{1,0,1,0,0,1},{1,1,1,1,1,1} }; ...
    int main() {
        vector<vector<int> >num = 
            { {1,1,1,0,1,1},{1,0,1,1,1,1},{1,1,1,0,0,1},{1,0,1,0,0,1},{1,1,1,1,1,1} };
    
        //二维数组初始化
        //vector<vector<int>> vec(10, vector<int>(10));
        vector<vector<int> >right(num.size(), vector<int>(num[0].size()));
        vector<vector<int> >down(num.size(), vector<int>(num[0].size()));
        construct(num, right, down);
        cout << calculate(num, right, down) << endl;
        return 0;
    }

    初始化了一个 6*5的二维矩阵矩阵,初始值为0.

    展开全文
  • C++:vector + vector二维数组初始化

    千次阅读 2019-10-09 21:03:24
    1. vector二维数组初始化方法: 2.示例代码 unsigned int rows = costMatrix.rows(); unsigned int cols = costMatrix.cols(); vector< vector<double> > costFunc(rows,vector<double>...
  • 之前我一直以为vector不能用vec = {1,2,3}这种方式直接定义,直到我看到下面的代码 vector<vector<int> >num = { { 1, 1, 1, 0, 1, 1 }, { 1, 0, 1, 1, 1, 1 }, { 1, 1, 1, 0, 0, 1 }, { 1, 0, 1, 0,...
  • C++ vector 实现二维数组赋值

    万次阅读 多人点赞 2019-05-11 15:19:30
    vector二维数组赋值 vector<vector<float> >bk; vector<float> MM; MM.push_back(1); MM.push_back(22); MM.push_back(3); MM.push_back(6); bk.push_back(MM); 原文链接 (1...
  • 关于vector二维动态数组初始化

    千次阅读 2017-11-13 16:54:29
    很多时候,我们要使用动态数组来存储一开始未知...如果我们知道行数,那么初始化可以如此写:vector>Name(row,vector(0))。这样的含义是:行数为row,列数为0。那如何对这个数组赋值呢?例如简单做一个已知3行,但是
  • 历届试题 大臣的旅费: 1遇到的问题 大家都能想到的是用: 枚举+dfs。就能很轻松的解决,这样可以直接拿到75%分!! 但是时间复杂度会超过。...开始想用 容器定义一个二维数组vector < vector > mapp;
  • 类结构中容器一维二维数组初始赋值初始长度设置的一种方法 class sample //定义sample类 { public: vector<double> a; //一维容器 vector<vector<double>>...
  • 出现java.lang.NullPointerException异常 总结 数组是对象类型数据,声明数组时注意new的使用 二维数组就是数组数组,里面的数组大小不要求一样 不管是一维数组还是二维数组,在使用前(赋值,访问)必须初始化,...
  • vector二维数组注意使用前要分配空间,不然就会出现以下错误: error: reference binding to null pointer of type 'value_type' 错误不唯一 所以最好在vector二维数组定义时就分配好空间 vector<vector<int&...
  • 《C++笔记》 Part7 一维数组二维数组初始化问题(vector)转载自: C++——二维vector初始化大小方法 C++ vector多维数组初始化及清零一. 一维数组初始化问题数组元素初始化时,若没有显式提供幸元素的值,则...
  • vector 二维数组

    千次阅读 2020-10-20 21:56:22
    //p=new int(8)表示分配一个int空间并初始化为8; for (int i = 0; i < m; ++i) { p[i] = new int[5]; } 利用Vector的push_back函数 vector<vector<int>> vec; //外层 vector<int> a; ...
  • 【C++】 容器 vector初始化二维数组

    千次阅读 2018-07-06 09:53:44
    使用vector初始化二维数组,并且获得二维索引的方法:
  • new方法创建动态二维数组vector创建动态二维数组 #include<iostream> #include<vector> using namespace std; void main() { int n ; int m ; printf("input:\n"); scanf_s("%d,%d", &n,&...
  • vector<vector<int>> generate(int numRows) { vector< vector<int> > result;/*定义一个名为result的数组,中间要有空格,否则可能报错*/ for (int i = 0; i < numRows; i++) {/*...
  • vector的初始化有很多方式,在N维初始化时还会一些容易出现错误的地方。下面进行总结 以下的总结均以int作为模板参数 1.一维vector的初始化 vector的构造函数通常来说有五种,如下: vector():创建一个空vector ...
  • vector就是动态数组二维也相当于特殊的一维,只是每一个元素都是一个数组二维vector 定义 //=================== 头文件 ======================= #include <vector> //=====...
  • vector创建二维数组

    2020-06-05 18:57:33
    1 vector二维数组的创建和初始化 vector vec(10,90); //将10个一维动态数组初始为90 vector<vector > vec(row,vector(col,0)); //初始化row * col二维动态数组初始化值为0 2 获取一维数组的长度 int size = ...
  • 图像处理中,有的算法需要获取图像的尺寸,并创建一个二维数组...使用vector创建动态二维数组的方法如下: int main() { Mat Image, grayImage; Image = imread("a.png"); //namedWindow("原图...
  • c++用vector创建二维数组

    千次阅读 2019-02-26 10:35:00
    1 vector二维数组的创建和初始化 std::vector <int> vec(10,90); //将10个一维动态数组初始为90std::vector<std::vector<int> > vec(row,vector<int>(col,0)); //初始化row * col二维动态...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 12,876
精华内容 5,150
关键字:

vector二维数组初始化赋值