c++ 用vector 定义二维数组

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

“二维”、“多维”数组在初级编程和解算法题时会被提到并流行
真正在实用中是较少用到的。实用中多用的是“装数组的数组”。
vector<vector<int>> v;这个就是"二维",可以用v.size()直接得到行数
*argv[] 这个也是"二维"。
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-03-11
/**/#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}};

追答

貌似 不可以啊

本回答被提问者和网友采纳
第2个回答  2021-03-27
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;
第3个回答  2011-08-29
int a[3][4]={{1,2,3,4},{5,6,7,8},{2,3,4,5}};完全没问题
不过一般叫做多维阵列, multidimensional array

c++ 用vector 定义二维数组
vector<vector<int>> v;这个就是"二维",可以用v.size()直接得到行数 argv[] 这个也是"二维"。

C++ 如何将二维数组转换为vector?
在 C++ 中,可以使用 STL 库中的 vector 来存储二维数组。可以先定义一个空的 vector,然后通过循环来将二维数组的每一行添加到 vector 中。示例代码如下:include <vector> using namespace std;int array[length1][length2];vector<vector<int>> vec;for (int i = 0; i < length1; i++) ...

C++Vector放一个普通二维数组
vector的元素如果是容器类型,必须满足以下要求,有复制构造函数,有重载的operator=, 有移动复制构造函数。而数组这个最基本的“容器”却没有这些特性,所以数组不能当vector的元素 你可以把数组封装到一个struct或者class里,然后用这个struct或者class当作vector的元素,也可以用vector的vector解决你的问题,...

C++中的vector如何实现二维?
vector<vector<int> > rec;for(int i=0;i<5;i++){ vector<int> clildrec(*(arrby+i),*(arrby+i)+5);rec.push_back(clildrec);}\/\/这个就完成了2维数组到vector的复制;vector<vector<int> >::iterator iter=rec.begin();vector<int>::iterator clilditer;while(iter!=rec.end()){...

mfc c++ 初学,vector怎么最简单地使用二维数组vector<int,int> vec...
1.不知道是不是你写错了,正确的二维数组是vector<vector<int> >vect[常量]。2.个人觉得使用typedef表示方法好理解点,直接把vector<vector<int> >看作一个整数,如下:typedef VEC vector<vector<int> >;2.操作:VEC vec[常量]; vec[0].push_bac(1);跟一般类型的二维数组一样去操作。

C++ vector关于二维向量.申明与赋值..
你说的vector<int> vi(10),这种形式的初始化只是适用于顺序初始化容器,而且,虽然它的作用有点像是指定了个数,但是,其实它是初始化了10个为0的物件,vector本身还是容器,不要把它理解为矩阵还是几维几维的东西,用容器如果纯粹是来处理数组做的事情,那就不是使用容器的意义了。所以你说到了...

动态创建二维vector数组 C和C++ 及指针与引用的区别
vector<vector <int> > ivec;ivec.resize(m,vector<int>(n));动态创建二维数组a[m][n]C语言版:include<malloc.h> int **a=(int **)malloc(m*sizeof(int *));for(int i=0;i<m;i++)a[i]=(int *)malloc(n*sizeof(int));C++版:int **a=new int*[m];for(int i=0;i...

C++ STL中 Vector的基本用法
在C++的STL库中,vector是用于存储动态大小数组的一个容器。其提供了丰富的功能,简化了数组的管理。首先,我们来创建一个一维vector。通过使用`std::vector nums;`,我们定义了一个空的整型一维vector。通过`nums.push_back(value);`,可以向vector中添加元素。例如,`nums.push_back(5);`将添加整数...

C++ 如何声明超大的二维数组
可以在函数外面直接声明,不在函数里面这样子声明就好。例如:int main() {int arr[1024][1024];}这样的声明程序会直接崩溃,没有办法运行的,但是稍微改一下:int arr[1024][1024];int main() {...}这样子的话,程序就可以正常运行了。

C++怎样使用变量定义二维数组??
for (int i=0; i

相似回答