c++ 用vector 定义二维数组

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++ 用vector 定义二维数组相关的知识,希望对你有一定的参考价值。

用vector定义二维数组时,可不可以像c中定义二维数组一样,直接赋值啊?如果可以,怎么赋值?我见过的赋值都是先定义一个二维数组,再进行赋值。
另外,比如,size可以判断一维数组的长度,有没有什么命令可以判断一个二维数组有多少行?

“二维”、“多维”数组在初级编程和解算法题时会被提到并流行
真正在实用中是较少用到的。实用中多用的是“装数组的数组”。
vector<vector<int>> v;这个就是"二维",可以用v.size()直接得到行数
*argv[] 这个也是"二维"。
参考技术A /**/#include <iostream>
#include <vector>
#include <iomanip>
using namespace std;

void main()

vector <double> v;
vector < vector <double> > v2d;
v.push_back(1.0);
v.push_back(2.0);
v.push_back(3.0);
v.push_back(4.0);
v2d.push_back(v);
v.clear();/////////////////////
v.push_back(11.0);
v.push_back(12.0);
v.push_back(13.0);
v.push_back(14.0);
v2d.push_back(v);
for(int i=0;i <v2d.size();i++)

for(int j=0;j <v2d[i].size();j++)
cout<<v2d[i][j]<<" ";
cout<<endl;


追问

可不可以像二维数组那样定义?比如,int a[3][4]=1,2,3,4,5,6,7,8,2,3,4,5;

追答

貌似 不可以啊

本回答被提问者和网友采纳
参考技术B 1、在C++中,vector可以用来直接给二维数组赋值,比如我现在要给一个4 x 4的二维vector赋值,那么用如下代码实现:
#include <iostream>
#include <vector>
using namespace std;
int main()
vector<vector<int>>nums = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16;
return 0;


2、可以用nums.size()和nums[0].size()来获取二维vector的行数和列数
在上述代码基础上添加
row = nums.size();
col = nums[0].size();
cout<<'rows = '<<row<<endl;
cout<<'cols = '<<col<<endl;
参考技术C int a[3][4]=1,2,3,4,5,6,7,8,2,3,4,5;完全没问题
不过一般叫做多维阵列, multidimensional array

c++ 二维vector的初始化及构造

我想用vector写一个二维矩阵的类,能不能用一个变量来作为定义vector的的参数,
例如:vector<<vector<int> > mat(n, vector<int>(m)); //n,m为int型变量 。
另外,能否在类的声明里不指明vector大小,而在构造函数里声明,
如下:
class Matrix

private:
vector<vector<int>> mat;

Matrix::Matrix(int n,int m)

vector<<vector<int> > mat(n, vector<int>(m));

或者大家能告诉我正确的方法
不是上面的构造函数
Matrix::Matrix(int n,int m)

mat.resize(n);
for(int i=0;i<n;i++)

mat[i],resize(m);

参考技术A 多级STL嵌套,内嵌的STL对象建议使用指针。你上面的方法应该也可以,就是有点笨拙,而且vector是可变数据,没有必要在程序的开始就resize。我有类似的map应用,有兴趣我可以提供。

以上是关于c++ 用vector 定义二维数组的主要内容,如果未能解决你的问题,请参考以下文章

C++ vector 动态二维数组 长度不一样 实例

c++ vector二维数组初始化与vector切片

c++ vector二维数组初始化与vector切片

Vector容器 二维数组sort()排序

在 C++ 11 中初始化二维数组有啥好的方法吗? [复制]

vector二维数组的问题。