<pair<int,int> >用C语言编写
时间: 2023-06-15 21:08:38 浏览: 143
在C语言中,可以使用结构体来表示一个pair。例如:
```c
struct pair {
int first;
int second;
};
```
然后,我们可以定义一个pair类型的变量:
```c
struct pair p = {1, 2};
```
这个变量p表示一个值为(1, 2)的pair。
需要注意的是,在C++中,pair是一个模板类,可以定义不同类型的pair,但是在C语言中,由于没有模板类的概念,我们只能定义一个int类型的pair。
如果需要定义多个不同类型的pair,可以考虑使用void指针和函数指针来实现。例如:
```c
struct my_pair {
void *first;
void *second;
int (*compare)(void *, void *);
};
int compare_int(void *a, void *b) {
int x = *(int *)a;
int y = *(int *)b;
if (x < y) return -1;
if (x > y) return 1;
return 0;
}
int main() {
int a = 1, b = 2;
struct my_pair p = {&a, &b, compare_int};
printf("(%d, %d)\n", *(int *)p.first, *(int *)p.second);
printf("compare result: %d\n", p.compare(p.first, p.second));
return 0;
}
```
这样就可以定义一个包含两个不同类型的值的pair,并且可以比较这两个值的大小。
阅读全文