转:用STL中的vector动态开辟二维数组

用STL中的vector动态开辟二维数组

源代码:
#include <iostream>
#include <vector>
using namespace std;
int main()
{
 int m, //行数
     n; //列数
 cout << "input value for m,n:";
 cin>>m>>n;
 
 //注意下面这一行:vector<int后两个">"之间要有空格!否则会被认为是重载">>"。
 vector<vector<int> > vecInt(m, vector<int>(n)); 
 for (int i = 0; i < m; i++)    //初始化二维数组,,其实这里可以不用初始化的,vector中默认初始化为0
   for (int j = 0; j < n; j++)
      vecInt[i][j] = 0;
  
 for (i = 0; i < m; i++)         //输出二维数组vecInt[][]
 {
  for (j = 0; j < n; j++)
   cout<<vecInt[i][j]<<" ";
  cout<<endl;
 }
 return 0;
}

时间: 2024-08-04 21:00:07

转:用STL中的vector动态开辟二维数组的相关文章

一句话动态开辟二维数组

#include<iostream> using namespace std; //动态开辟int p[4][5]数组 void main() { //为了验证正确性,我们先把开辟的一维数组赋值给 pp int *pp=new int[20]; int i=0,j=0; for(i=0;i<20;i++)//为一维数组中每一个元素赋值,并输出该元素地址 { pp[i]=i; cout<<&(pp[i])<<" ";//即 pp+i }

[ 1001] 动态开辟二维数组的说明

开辟二维数组的说明 图解  [1][][][][] [2][][][][] [3][][][][] void main() { int i,j; /*注意申请的指针格式  先创建的是1,2,3首地址为指向指针的指针a来代表 1,2,3所在地址*/ int **a = (int **) malloc(sizeof(int *) * 3); /* 循环创建了3个 1*4的数组 并将首地址给了 1,2,3的位置上*/ for (j=0;j<3;j++) { a[j] = (int *) malloc(

【C++】动态开辟二维数组

二维数组在内存中的分配例如以下: C方式呈现: <span style="font-size:18px;"> #include <iostream> using namespace std; #define ROW 3 #define COL 4 void main() { int **p = (int **)malloc(sizeof(int*)*ROW); for(int i=0; i<ROW; ++i) { p[i] = (int *)malloc(

【C语言】 动态开辟二维数组

#include <stdio.h> #include <stdlib.h> int main() { //int arr[3][4]; int **arr = (int**)malloc(sizeof(int*) * 3); int i = 0; int j = 0; int k = 1; for(i = 0;i<3;i++) { arr[i] = (int *)malloc(sizeof(int) * 4); //  memset(arr[i],1,(sizeof(int

C++中动态申请二维数组并释放方法

C/C++中动态开辟一维.二维数组是非常常用的,以前没记住,做题时怎么也想不起来,现在好好整理一下. C++中有三种方法来动态申请多维数组 (1)C中的malloc/free (2)C++中的new/delete (3)STL容器中的vector 下面逐一介绍: 第一种:malloc/free 1.动态开辟一维数组 [cpp] view plaincopy //动态开辟一维数组 void dynamicCreate1Array() { int m; int i; int *p; printf("

C++动态申请二维数组与拷贝构造函数

一.C++动态申请二维数组 在C++中不能直接动态申请二维数组,经过一番搜索,发现一种动态申请二维数组较好的方法. 代码如下(MATRIX_TYPE为某一种类型,Lines和Columns): MATRIX_TYPE** elem; //C++二维矩阵动态申请空间 elem = new MATRIX_TYPE*[Lines]; elem[0] = new MATRIX_TYPE[Lines * Columns]; for(int i = 1; i < Lines; i++) elem[i] =

C++中动态申请二维数组

这里主要介绍C++中动态申请二维数组的两种方式,直接给出代码,很容易明白,简单的作为一个笔记. #include <iostream> #include <iomanip> // 输入输出操纵 #include <vector> using namespace std; // 法一:new 方式申请 void dynamicArray() { int rows, cols; cin >> rows >> cols; int **element =

如何在C++中动态建立二维数组(转)

http://blog.sina.com.cn/s/blog_7c073a8d0100qp1w.html http://blog.163.com/[email protected]/blog/static/7198839920117252550574/ C++中用new动态创建二维数组的格式一般是这样: TYPE (*p)[N] = new TYPE [][N]; 其中,TYPE是某种类型,N是二维数组的列数.采用这种格式,列数必须指出,而行数无需指定.在这里,p的类型是TYPE*[N],即是指

&lt;细节&gt;动态创建二维数组

今天在做一个关于数组相似度的题目,需要动态创建二维数组,刚开始想用常规的int a[ ][ ]建立,但很快就发现行不通,这种常规数组必须在编译前指定数组的维数,而这个题目在的维数必须在运行中计算得出,于是想到采用new来建立动态二维数组,这个方法行得通,但是很麻烦,也不太利于理解,后面决定采用vector< vector< int > >方法来创建,简单了不少,下面对两种方法都进行一下总结. 1.使用vector创建二维数组 #include <iostream> #i