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);
以上是关于c++ 用vector 定义二维数组的主要内容,如果未能解决你的问题,请参考以下文章