您的位置:首页 > 其它

一维&&二维&&三维数组的建立

2014-08-17 13:07 99 查看
一维数组

////***********指针类型*************

//-----------new----------------
int*p = new int[arraySize];

//-----------delete----------------
//new开辟后需要释放空间
delete []p;   //删除数组空间
delete p;    //错误,只删除了第一个元素

////***********vector类型*************
vector<string> v1;         // 创建空容器,其对象类型为string类
vector<string> v2(10);     // 创建有10个具有初始值(即空串)的string类对象的容器
vector<string> v3(5, "hello"); // 创建有5个值为“hello”的string类对象的容器
vector<string> v4(v3.begin(), v3.end());  // v4是与v3相同的容器(完全复制)

//int类型
vector<int> p; //创建空容器
vector<int> p(arraySize);
vector<int> p(arraySize, 0);

////***********直接类型*************
int p[arraySize];


二维数组

////***********指针类型*************

//-----------new----------------
int **p;  //定义指向int指针的指针
p = new int*[arraySize];  //申请arraySize个指针,并使p指向它
for(int i = 0; i < arraySize; ++i)
p[i] = new int[arraySize]; //分别使N个指针指向N个int的对象

//上述new的工作等同于
int (*p)[arraySize] = new int[arraySize][arraySize]; //定义一个指向有arraySize个元素的行指针p

//-----------delete----------------
//用new在堆上开辟的空间,必须要用delete释放,否则会有内存泄露
for (int i = 0; i < arraySize; i++)
{
delete []p[i]; //删除数组元素,但是申请的arraySize个行指针还没有删除
p[i] = NULL;
}
delete []p; //删除行指针
p = NULL;

////************直接类型*************
int p[arraySize][arraySize];                                                                                                    vector<vector<int> > array(arrzySize, vector<int>(arraySize, 0));


三维数组

////***********指针类型*************

//-----------new----------------
int ***p;
p = new int **[K];
for(int i = 0; i < K; ++i)
{
p[i] = new int *[M];
for(int j = 0; j < M; ++j)
{
p[i][j] = new int
;
}

}

//-----------delete----------------
for(int i = 0; i < K; ++i)
{
for(int j = 0; j < M; ++j)
delete []p[i][j];
delete []p[i];
}

delete []p;

////***********vector类型*************

vector<vector<vector<int> > > p(m, vector<vector<int> >(K, vector<int>(M)));



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: