/*
动态开辟二维数组
注意空间的开辟
注意 数组指针的使用
*/
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
const int N = 100001;
int n = 10;//初始设置的动态数组的大小
int(*p)[2] = new int[n][2];//注意这个地方的声明方式,数组指针
int i = 0;
int temp = 0;
int m = 0;//本题需要的数组大小
cin >> m;
//利用动态数组保存数据
while (1)
{
if (i == m)//退出条件
{
break;
}
if (i == n - 2)//实现动态开辟数组算法,当数组大小达到设定的一定范围是,扩大数组大小,一次扩大2倍
{
temp = n;
int(*q)[2] = new int[n][2];//开辟中间变量,保留原数组中的数据
for (int j = 0; j < temp - 2; j++)
{
for (int k = 0; k < 2; k++)
{
q[j][k] = p[j][k];
}
}
n *= 2;
p = new int[n + 1][2];//对原数组重新开辟空间
for (int j = 0; j < temp - 2; j++)//将中间变量中的数据转存到原来的数组中去
{
for (int k = 0; k < 2; k++)
{
p[j][k] = q[j][k];
}
}
delete[]q;//释放局部变量
}
for (int k = 0; k < 2; k++)
{
cin >> p[i][k];
}
i++;
}
for (int i = 0; i < m; i++)
{
for (int j = 0; j < 2; j++)
{
cout << p[i][j] << " ";
}
cout << endl;
}
}
动态开辟二维数组
注意空间的开辟
注意 数组指针的使用
*/
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
const int N = 100001;
int n = 10;//初始设置的动态数组的大小
int(*p)[2] = new int[n][2];//注意这个地方的声明方式,数组指针
int i = 0;
int temp = 0;
int m = 0;//本题需要的数组大小
cin >> m;
//利用动态数组保存数据
while (1)
{
if (i == m)//退出条件
{
break;
}
if (i == n - 2)//实现动态开辟数组算法,当数组大小达到设定的一定范围是,扩大数组大小,一次扩大2倍
{
temp = n;
int(*q)[2] = new int[n][2];//开辟中间变量,保留原数组中的数据
for (int j = 0; j < temp - 2; j++)
{
for (int k = 0; k < 2; k++)
{
q[j][k] = p[j][k];
}
}
n *= 2;
p = new int[n + 1][2];//对原数组重新开辟空间
for (int j = 0; j < temp - 2; j++)//将中间变量中的数据转存到原来的数组中去
{
for (int k = 0; k < 2; k++)
{
p[j][k] = q[j][k];
}
}
delete[]q;//释放局部变量
}
for (int k = 0; k < 2; k++)
{
cin >> p[i][k];
}
i++;
}
for (int i = 0; i < m; i++)
{
for (int j = 0; j < 2; j++)
{
cout << p[i][j] << " ";
}
cout << endl;
}
}