C语言怎么改写public static HashSet<Point> set = new HashSet<Point>();
时间: 2023-05-11 22:03:30 浏览: 96
抱歉,C语言中没有public static关键字,也没有HashSet类。但是,我们可以使用结构体和指针来实现类似的功能。以下是一个示例代码:
```
#include <stdio.h>
#include <stdlib.h>
struct Point {
int x;
int y;
};
struct HashSet {
struct Point* points;
int size;
};
void add(struct HashSet* set, struct Point point) {
for (int i = 0; i < set->size; i++) {
if (set->points[i].x == point.x && set->points[i].y == point.y) {
return;
}
}
set->size++;
set->points = (struct Point*)realloc(set->points, set->size * sizeof(struct Point));
set->points[set->size - 1] = point;
}
int main() {
struct HashSet set = { NULL, 0 };
struct Point p1 = { 1, 2 };
struct Point p2 = { 3, 4 };
add(&set, p1);
add(&set, p2);
printf("Set size: %d\n", set.size);
printf("Set contents: ");
for (int i = 0; i < set.size; i++) {
printf("(%d, %d) ", set.points[i].x, set.points[i].y);
}
printf("\n");
free(set.points);
return 0;
}
```
这个代码使用了一个结构体HashSet来存储点的集合,其中包含一个指向Point结构体数组的指针和一个表示集合大小的整数。add函数用于向集合中添加一个点,如果点已经存在于集合中,则不进行任何操作。在main函数中,我们创建了两个点并将它们添加到集合中,然后输出集合的大小和内容。最后,我们释放了动态分配的内存。
阅读全文