请大佬看看这句话应该怎么修改?



































































































































#include <vector>
#include <set>
#include <iostream>
#include <fstream>
using namespace std;


struct point
{
	int row;//行
	int col;//列
	set<int> attribute;//属性值
	
};


int  *map;
int m=10, n=10;//
point *PointMap;


vector<point> Openlist1;//开启列表1
vector<point> Openlist2;//开启列表2
point E1;//电梯1
point E2;//电梯2


void Readfile()
{
	ifstream in("D:\\创新开发大赛\\生成voronoi图\\voronoi\\voronoi\\map.txt");


	map = new int[m*n];
	PointMap = new point[m*n];//地图初始化
	for (int i = 0; i <= m; i++)
	{
		for (int j = 0; j <= n; j++)
		{
			map[i*n + j] = 0;
			PointMap[i*n + j].row = i;
			PointMap[i*n + j].col = j;


		}
	}


	for (int i = 0; i < m; i++)
	{
		for (int j = 0; j < n; j++)
		{


			in >> map[i * n + j];//将map.txt中的数据读入到map数组中
			if (map[i*n + j] == 1)
			{
				E1.row = i;
				E1.col = j;//读取电梯1所在位置
			}
			if (map[i*n + j] == 2)
			{
				E2.row = i;
				E2.col= j;//读取电梯2所在位置
			}


		}
	}
	in.close();
}


void Enlarge(int row1, int col1, int row2, int col2)
{
	int temp_row1, temp_col1;
	int temp_row2, temp_col2;
	point p1;
	point p2;
	for (int i = -1; i <= 1; i++)
	{
		for (int j = -1; j <= 1; j++)
		{
			if (PointMap[row1*n + col1].attribute.size() > 1) continue;
			if (i == 0 && j == 0) continue;
			if (i != 0 && j != 0) continue;//只往十字方向扩张
			int temp_row1 = row1 + i;
			int temp_col1 = col1 + j;
			//cout << temp_row << temp_col << endl;
			if (temp_row1< 0 || temp_row1 >= m) continue;
			if (temp_col1 < 0 || temp_col1 >= n) continue;
			p1 = PointMap[temp_row1*n + temp_col1];
			p1.attribute.insert(1);
			map[i*n + j] = 1;
			if (PointMap[row2*n + col2].attribute.size() > 1) continue;
			if (i == 0 && j == 0) continue;
			if (i != 0 && j != 0) continue;//只往十字方向扩张
			int temp_row2 = row2 + i;
			int temp_col2 = col2 + j;
			//cout << temp_row << temp_col << endl;
			if (temp_row2 < 0 || temp_row2 >= m) continue;
			if (temp_col2 < 0 || temp_col2 >= n) continue;
			p2 = PointMap[temp_row2*n + temp_col2];
			p2.attribute.insert(2);
			map[i*n + j] = 2;
			Enlarge(temp_row1, temp_col1, temp_row2, temp_col2);


		}
	}
}


	
void Output()
{
	ofstream out("D:\\创新开发大赛\\生成voronoi图\\voronoi\\voronoi\\结果.txt");
	for (int i = 0; i <= m; i++)
	{
		for (int j = 0; j <= n; j++)
		{
			out << map[i*n + j] << " ";
		}
		out << endl;
	}
	out.close();
}






void main()
{
	Readfile();
	Openlist1.push_back(E1);
	Openlist2.push_back(E2);
	Enlarge(E1.row,E1.col,E2.row,E2.col);
	Output();
	
	cout << "生成结束"<<endl;
}