精华内容
下载资源
问答
  • 二维vector赋值时越界

    2018-08-28 18:07:43
  • vector< vector<int> > updateMatrix(vector< vector<int> >& matrix) { int row=matrix.size(), col=matrix[0].size(); int res[row+1][col+1]; vector< vector<int> >re; vector<int> temp; int i,j; for(i...
    点击打开链接
    //一次性过的
    #include <iostream>
    #include <stdio.h>
    #include <stdlib.h>
    #include <string>
    #include <cstring>
    #include <string.h>
    #include <algorithm>
    #include <vector>
    #include <numeric>
    #include <limits>
    #include <math.h>
    #include <queue>
    using namespace std;
    class Solution {
        struct Node{
            int x, y;
            int steps;
        };
        int Move[4][2]={{-1,0},{1,0},{0,-1},{0,1}};
        queue<Node>Q;
    public:
        int BFS(int xx, int yy, int row, int col, vector< vector<int> >& matrix)
        {
            int vis[row+1][col+1];
            memset(vis, 0, sizeof(vis));
            while (!Q.empty()) Q.pop();
            Node temple1, temple2;
            temple1.x=xx; temple1.y=yy; temple1.steps=0;
            Q.push(temple1);
            while (!Q.empty()) {
                temple1=Q.front(); Q.pop();
                if(matrix[temple1.x][temple1.y]==0) return temple1.steps;
                for(int i=0;i<4;i++){
                    temple2=temple1;
                    temple2.x+=Move[i][0]; temple2.y+=Move[i][1];
                    if(temple2.x>=0&&temple2.x<row&& temple2.y>=0&&temple2.y<col&&!vis[temple2.x][temple2.y]){
                        vis[temple2.x][temple2.y]=1;
                        temple2.steps+=1;
                        Q.push(temple2);
                    }
                }
            }
            return 0;
        }
        vector< vector<int> > updateMatrix(vector< vector<int> >& matrix) {
            int row=matrix.size(), col=matrix[0].size();
            int res[row+1][col+1];
            vector< vector<int> >re;
            vector<int> temp;
            int i,j;
            for(i=0;i<row;i++){
                for(j=0; j<col;j++){
                    if(matrix[i][j]==0){
                        res[i][j]=0;
                    }
                    else res[i][j]=BFS(i,j,row, col,matrix);
                }
            }
            for(i=0;i<row;i++){
                for(j=0;j<col;j++){
                    temp.push_back(res[i][j]);
                }
                re.push_back(temp);
                temp.clear();
            }
            return re;
        }
    };
    int main()
    {
        
        return 0;
    }
    

    展开全文
  • 二维vector进行赋值

    千次阅读 2017-11-19 16:41:41
    二维vector进行赋值

    在练习过程中遇到了使用二维vector的情况,不想用下标访问的方式,迭代器方式摸索了好长时间,问了学长才知道。

    我犯了以下错误:

    1、没有指定vector的大小,就进行了下标和迭代器访问;

    2、通过第一层的迭代器it_vv访问第二层的时候,用的“.”访问而不是“->”访问,迭代器的使用和指针一样,这一点忘记了。


    首先需要指定vector的大小,如果不知道大小的话是不能进行下标或者迭代器访问的。

    cin >> M >> N;

    vector<vector<int>> m(M,vector<int>(N));

    vector<vector<int>>dp(M,vector<int>(N));


    然后就可以通过下标访问或者迭代器访问。

    /*使用数组方式赋值*/
    
    for (i = 0; i < M; i++) {
    	for (j = 0; j < N; j++) {
    		cin >> m[i][j];
    	}
    }
    
    /*使用迭代器方式赋值*/
    for (auto it_vv = m.begin(); it_vv != m.end(); ++it_vv) {
    	for (auto it_v = it_vv->begin(); it_v != it_vv->end(); it_v++) { //迭代器的使用方法和指针类似
    		cin >> *it_v;
    	}
    }
    

    展开全文
  • C++中二维vector赋值

    万次阅读 2018-01-09 17:09:36
    vector > nums(8,vector... //二维数组的行数为8,列数为13。后一定要加一个空格,否则会被判别为操作符>>出错 int b[8][13] = {{0,0,1,0,0,0,0,1,0,0,0,0,0}, {0,0,0,0,0,0,0,1,1,1,0,0,0}, {0,1,1,0,1,0,0,0,0,0,0
    vector<vector<int> > nums(8,vector<int>(13)); //二维数组的行数为8,列数为13。<int>后一定要加一个空格,否则会被判别为操作符>>出错
    int b[8][13] = {{0,0,1,0,0,0,0,1,0,0,0,0,0},
                    {0,0,0,0,0,0,0,1,1,1,0,0,0},
                    {0,1,1,0,1,0,0,0,0,0,0,0,0},
                    {0,1,0,0,1,1,0,0,1,0,1,0,0},
                    {0,1,0,0,1,1,0,0,1,1,1,0,0},
                    {0,0,0,0,0,0,0,0,0,0,1,0,0},
                    {0,0,0,0,0,0,0,1,1,1,0,0,0},
                    {0,0,0,0,0,0,0,1,1,0,0,0,0}};
    for(int i = 0; i < 8; i++){
        for(int j = 0; j < 13; j++){
            nums[i][j] = b[i][j];
        }
    }
    

    展开全文
  • 建了一个二维数组(19*19): ![图片说明](https://img-ask.csdn.net/upload/201806/06/1528254415_305614.png) 初始化: ![图片说明](https://img-ask.csdn.net/upload/201806/06/1528254479_16033.png) ...
  • #include<iostream>...vector> using namespace std; int main() { vector<vector<int>> ans; vector<int> tmp; tmp.push_back(1); tmp.push_back(2); tmp.push_back(3);...
  • 二维vector初始化,赋值

    万次阅读 2019-01-27 19:50:50
    二维vector初始化 1. 采用构造函数 vector&lt;vector&lt;int&gt;&gt; vec(10, vector&lt;int&gt;(8)); //10行8列,全部初始化为零 2.添加元素(每次添加一行) int a[] = { 1, 2, 3, 4 }; ...
  • 二维数组赋值vector

    2019-08-13 19:09:44
    一维: vector<int> a; int b[5] = {1,2,3,4,5};...二维vector<vector<int> > vec(4,vector<int>(4)); int br[4][4] = {{1,2,8,9},{2,4,9,12},{4,7,10,13},{6,8,11,15}}...
  • 二维vector;STL
  • 一维数组: vector<int> a;...二维数组: b[5][6] = {1,2,3,4,5,6...27,28,29,30}; 如果a的长度给定了,即vector<vector<int> > a(5,vector<double>(6)); for(int i =...
  • 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可以使用push_back的方法进行赋值,先push_back出一维数组,再将这个一维数组push_back进二维数组。 直接访问的vector[][]方式可以访问数组,不过不能写入数组。不过为什么我不知道(内存是怎么运行...
  • 二维vector定义

    千次阅读 2017-09-03 16:41:11
    定义空二维vector,再赋值 vector > ivec(m ,vector(n)); //m*n的二维vector,注意两个 "> "之间要有空格!
  • C++二维vector使用

    2020-02-04 18:08:35
    注:二维vector赋值不能跟二维数组一样用scanf或者cin写入 遍历(迭代器) 方法一 void print() { vector<vector<char>>::iterator it; vector<char>::iterator iter; vector<char> c....
  • C++ 动态二维数组(二维vector)

    千次阅读 2020-05-11 13:55:39
    在完成一项任务时可能会需要用到动态二维数组,在C++中,可以使用二维vector创建二维数组。对二维数组的使用,其操作可分为增删查改。其中修改操作可以通过简单赋值操作完成,之后便不再赘述。 创建二维数组: ...
  • C++的vector赋值

    2021-01-19 17:57:55
    C++的vector赋值 一维vector push_back(x):向容器尾部增加一个元素X 例: vectorgoal; goal.push_back(x); //不能用goal[0]=x; 二维vector
  • 二维vector

    2021-03-31 22:45:39
    #include <iostream > #include <... //一步到位,在定义时便进行确定大小,赋值,每个值自由给定。 vector<vector <int> > nums1 ={ {1,2} ,{3,4} } ; for( i = 0; i <
  • 二维vector的输入

    万次阅读 多人点赞 2017-04-16 22:32:47
    不像二维数组那样,可以直接对arr[i][j]进行循环赋值。在vector<vector<int>>中,因为vector是一个容器,最外层的vector容器中放着更小的vector,而里层的vector里面放的是int型的数字。所以我们首先要对里层的...
  • 二维vector容器输入

    2018-04-17 17:15:11
    二维vector容器输入 不像二维数组那样,可以直接对arr[i][j]进行循环赋值。在vector<vector<int>>中,因为vector是一个容器,最外层的vector容器中放着更小的vector,而里层的vector里面放的是int型的...
  • 初始化二维vector大小 vector<vector<int>>v(5,vector<int>(5)); //这就是一个5*5的二维vector,默认值为0 为二维vector赋给定的值 vector<vector<int>>v(5,vector<int>(5,2))...
  • 二维vector初始化问题

    2020-04-08 11:04:44
    vector<vector<int>> dp(n); vector<int> v(n); for(int i=0;i<n;i++) dp[i]=v; 这样就完成了二维数组的初始化,可以像数组一样直接赋值
  • #include<bits/stdc++.h> #include<vector> using namespace std; int main(){ int n,m; while(cin>>n>>m){ vector<...i++){ //二维vector遍历赋值 for (int

空空如也

空空如也

1 2 3 4 5 ... 9
收藏数 166
精华内容 66
关键字:

二维vector赋值