精华内容
下载资源
问答
  • 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二维数组赋值

    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<int> a(10); //定义了10个整型元素的向量(尖括号中为元素类型名,它可以是任何合法的数据类型),但没有给出初值,其值是不确定的。
    (2)vector<int> a(10,1); //定义了10个整型元素的向量,且给出每个元素的初值为1
    (3)vector<int> a(b); //用b向量来创建a向量,整体复制性赋值
    (4)vector<int> a(b.begin(),b.begin+3); //定义了a值为b中第0个到第2个(共3个)元素
    (5)int b[7]={1,2,3,4,5,9,8};vector<int> a(b,b+7); //从数组中获得初值

     

    在STL中Vector这一容器,无论是在封装程度还是内存管理等方面都优于传统C++中的数组。本文主要是关于使用Vector初始化、遍历方面的内容。其他二维的思想也是类似的。

    这里简单叙述一下C++ 构建二维动态数组

    int **p;
    p = new int*[10];    //注意,int*[10]表示一个有10个元素的指针数组
    for (int i = 0; i < 10; ++i)
    {
        p[i] = new int[5];
    }

    定义一个二维整形数组并初始化:

    vector<vector<int> > array(m); //这个m一定不能少//vector<int> array[m];
    //初始化一个m*n的二维数组
    for(int i=0;i<m;i++) 
    {
        array[i].resize(n);
    }
    //遍历赋值
    for(i = 0; i < array.size(); i++)
    {
       for (j = 0; j < array[0].size();j++) 
        {   
            array[i][j] = (i+1)*(j+1); 
        } 
    }

    例子

    int main()
    {
        int i = 0, j = 0;
    	vector< vector<int> > maze(8, vector<int> (12, 0));    
        int A[8][12] = {{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
                        { 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1 },
                        { 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1 },
                        { 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1 },
                        { 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1 },
                        { 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1 },
                        { 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1 },
                        { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }
                       };
        int m, n;
        for(m = 0; m < maze.size(); m++)
        {
            for(n = 0; n < maze[m].size(); n++)
            {
                maze[m][n] = A[m][n];
                cout << maze[m][n] << " ";
            }
            cout << "\n";
        }
    
    }

     

    展开全文
  • vector<vector <int> > array(3);//定义了行数为3列数不定的二维数组 array.size()//返回二维数组...定义一个行列固定的二维vector数组 例: vector<vector<int> > a; a.resize(m);//...

    vector<vector <int> > array(3);//定义了行数为3列数不定的二维数组

    array.size()//返回二维数组的行数

    array[0].size()//返回二维数组第一行的列数

     

    定义一个行列固定的二维vector数组

    例:

    复制代码

    vector<vector<int> > a;
    a.resize(m);//行数为m
    for(int i=0;i<m;i++)//每行列数为n
        a[i].resize(n);
    //之后可采用遍历的方式为a数组赋值
    int t;
    for(int i=0;i<m;i++)
    {
        for(int j=0;j<n;j++)
            a[i][j]=t;
    }

    复制代码

    展开全文
  • 建了一个二维数组(19*19): ![图片说明](https://img-ask.csdn.net/upload/201806/06/1528254415_305614.png) 初始化: ![图片说明](https://img-ask.csdn.net/upload/201806/06/1528254479_16033.png) ...
  • 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);
    }
     

    展开全文
  • 给定一个 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("]");
    }
    
    展开全文
  • C++ 动态二维数组(二维vector)

    千次阅读 2020-05-11 13:55:39
    在完成一项任务时可能会需要用到动态二维数组,在C++中,可以使用二维vector创建二维数组。对二维数组的使用,其操作可分为增删查改。其中修改操作可以通过简单赋值操作完成,之后便不再赘述。 创建二维数组: ...
  • #include<iostream> #include<vector> using namespace std;... // 上述 仍可以用普通数组初始化形式表示 例: vector<int> v={6,6,6}; void print_v(){ for(auto i:v) cout <.
  • 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>...
  • c++不能直接返回数组,可以返回指针,指针指向一个地址。... //二维数组申请空间 float **outdata_array; outdata_array = new float *[rows]; for(int i = 0;i<rows;i++){ outdata_array[i] = new floa
  • C++ vector 实现二维数组

    万次阅读 多人点赞 2016-08-01 20:25:04
    在STL中Vector这一容器,无论是在封装程度还是内存管理等方面都由于传统C++中的数组。本文主要是关于使用Vector初始化、遍历方面的内容。其他二维的思想也是类似的。 1.初始化 (1)利用Vector的push_back函数...
  • 如何将二维数组赋值vector

    千次阅读 2016-08-15 12:52:17
    vector > a; double b[10][10] = {1,2,3,4,5,6,7,8,9,,,,,,,,,,,,,,,,89,79}; 将b[10][10]值如何赋给a? 一维数组vector a; int b[5] = {1,2,3,4,5};...二维数组: 如果a的长度给定了,  vector > a; b[5][6] =
  • vector就是动态数组二维也相当于特殊的一维,只是每一个元素都是一个数组二维vector 定义 //=================== 头文件 ======================= #include <vector> //=====...
  • vector二维数组注意使用前要分配空间,不然就会出现以下错误: error: reference binding to null pointer of type 'value_type' 错误不唯一 所以最好在vector二维数组定义时就分配好空间 vector<vector<int&...
  • C++创建二维数组

    2020-08-12 15:08:50
    C++中利用vector创建二维数组 二维数组的创建 vector <int> vec(10,90); //将10个一维动态数组初始为90 vector<vector<int>> vec(row,vector<int>(col,0)); //初始化row * col二维动态...
  • vector二维数组中的查找

    千次阅读 2018-04-19 08:56:20
    vector构成的二维数组 创建二维数组赋值 遍历二维数组 输出图示: 题目: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个...
  • C++动态二维数组的申请、赋值、使用、释放以及作参数示例
  • 一、C++中".","::",":","->"的意义及区别: 1、"A.B"则A为对象或者结构体; 2、"A->B"则A为指针,->...C++中二维vector赋值操作: 1、直接赋值: vector<vector<int>> mat = { {3, 0,
  • C++vector二维数组

    2019-08-15 21:46:14
    二维数组的创建 #include <iostream> #include <vector> #include <stdlib.h> using namespace std; int main() { //方法1:创建一个10*10的int类型数组 vector<vector<int>> vec...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,875
精华内容 3,550
关键字:

c++vector二维数组赋值

c++ 订阅