c++中的set
时间: 2023-08-06 11:24:03 浏览: 157
C++ Set(集合)
在 C 语言中,set 可以指代多种数据结构,但通常指的是集合(set)。集合是一种无序且不允许重复元素的数据结构,可以用来解决很多实际问题,比如统计某个字符串中出现过的不同字符的个数。
在 C 语言中,可以使用结构体和指针实现集合。以下是一个简单的 set 结构体示例:
```
typedef struct set {
int *elements; // 指向元素数组的指针
int size; // 集合大小
} set;
```
可以使用指针来操作集合,例如:
```
set *s = (set *)malloc(sizeof(set)); // 分配空间
s->size = 0; // 初始化集合大小为 0
s->elements = (int *)calloc(100, sizeof(int)); // 分配 100 个 int 类型的空间,并初始化为 0
```
然后可以使用一些函数来操作集合,例如:
```
// 向集合中添加元素
void add(set *s, int element) {
for (int i = 0; i < s->size; i++) {
if (s->elements[i] == element) {
return; // 如果元素已经存在于集合中,直接返回
}
}
s->elements[s->size] = element; // 否则将元素加入集合中
s->size++;
}
// 从集合中删除元素
void remove(set *s, int element) {
for (int i = 0; i < s->size; i++) {
if (s->elements[i] == element) {
s->elements[i] = s->elements[s->size - 1]; // 将最后一个元素移到当前位置
s->size--;
return;
}
}
}
// 判断元素是否在集合中
bool contains(set *s, int element) {
for (int i = 0; i < s->size; i++) {
if (s->elements[i] == element) {
return true;
}
}
return false;
}
```
以上是一些简单的 set 操作,实际上 set 还有很多其他的函数和操作,可以根据需要自行实现。
阅读全文