总结下,每次打码都要查…
C++中的vector
一维vector:
vector<int> ivec; //定义向量对象 ivec
vector<int> ivec1(ivec); // 定义向量对象ivec1,并用ivec初始化
vector<int> ivec2(n,1); //定义向量ivec2,包含了n个值为1的元素
vector<int> ivec3(n); // 定义向量对象ivec3,包含了n个值为0的元素
二维vector
//定义向量对象 ivec
vector<vector<int>> ivec;
//ivec1中每一个元素都是空的vector<int>
vector<vector<int>> ivec1(vector<int>());
//ivec2有n个元素,而每一个元素都是空的vector<int>
vector<vector<int>> ivec2(n, vector<int>());
//ivec3有n个元素,而每一个元素都是包含m个未初始化整数的vector<int>
vector<vector<int>> ivec3(n, vector<int>(m));
//ivec4有n个元素,而每一个元素都是包含m个0的vector<int>
vector<vector<int>> ivec4(n, vector<int>(m, 0));
resize的方式:
vector<vector <int> > ivec;
ivec.resize(m,vector<int>(n));
动态申请定长的数组
C++中有关数组的new和delete参考下面这个博文
C++中动态申请数组——new和delete
一维数组
//C语言版
int *a;
int N;
scanf("%d", &N);
a = (int *) malloc(N * sizeof(int));
//c++版
int number = 10;
int *array = new int[number];
二维数组
//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<m;i++) a[i]=new int[n];