vector<Point>& polygon怎么创建并赋值
时间: 2023-12-17 09:05:24 浏览: 139
要创建并赋值一个多边形(polygon),可以使用一个动态数组(vector)来存储多边形的顶点坐标。具体步骤如下:
1. 首先,需要包含头文件vector和头文件geometry(如果使用C++ STL库的话)。
```c++
#include <vector>
#include <geometry.h> // 如果使用C++ STL库
```
2. 然后,定义一个vector对象来存储多边形的顶点坐标。这个vector对象的类型应该是Point类型的引用(&),这样可以避免不必要的复制,提高效率。
```c++
vector<Point>& polygon;
```
3. 接着,需要为vector对象分配内存空间,可以使用resize()函数来实现。resize()函数的参数表示需要分配的内存大小,这里可以设置为多边形的顶点数。
```c++
int n = 4; // 多边形的顶点数
polygon.resize(n);
```
4. 然后,可以使用for循环来逐个赋值多边形的顶点坐标。假设多边形的顶点坐标已经存储在一个数组points[]中,可以通过下标访问数组来获取每个顶点的坐标,并将其赋值给vector对象中对应的元素。
```c++
for (int i = 0; i < n; i++) {
polygon[i].x = points[i].x; // 获取第i个顶点的x坐标,并赋值给vector对象中第i个元素的x坐标
polygon[i].y = points[i].y; // 获取第i个顶点的y坐标,并赋值给vector对象中第i个元素的y坐标
}
```
5. 最后,多边形的顶点坐标已经存储在vector对象中了,可以通过vector对象来访问和修改多边形的顶点坐标了。
完整的示例代码如下:
```c++
#include <vector>
#include <geometry.h>
using namespace std;
int main() {
// 定义多边形的顶点坐标
Point points[] = {{0, 0}, {1, 0}, {1, 1}, {0, 1}};
// 创建并赋值一个多边形
vector<Point>& polygon;
int n = 4;
polygon.resize(n);
for (int i = 0; i < n; i++) {
polygon[i].x = points[i].x;
polygon[i].y = points[i].y;
}
// 访问和修改多边形的顶点坐标
for (int i = 0; i < n; i++) {
cout << "Point " << i << ": (" << polygon[i].x << ", " << polygon[i].y << ")" << endl;
}
polygon[0].x = 2;
polygon[0].y = 2;
cout << "Modified point 0: (" << polygon[0].x << ", " << polygon[0].y << ")" << endl;
return 0;
}
```
阅读全文