set经常被用来将存储不重复的数据,例如有一堆有重复的数字,现在需要得到数字有多少类型,此时就可以利用set来存储这些数字,最终得到的集合就是不重复的数字集合。
c的写法
c中没有set
c++的写法
#include <set>
void setDemo() {
set<int> set1; //创建set
set1.insert(1); //在set的尾部添加元素
set1.insert(1);
set1.insert(2);
set1.insert(3);
set1.erase(1); //删除set中值为1的元素
set1.count(2); //查找集合中元素为2的
set<int>::iterator it; //循环输出set中的元素
for (it = set1.begin(); it != set1.end() ; it++) {
cout << *it << endl;
}
}
java的写法
public static void setDemo() {
Set<Integer> set = new TreeSet<>(); //声明并初始化set,元素为Interger类型
set.add(1); //添加元素
set.add(2);
set.add(3);
set.remove(1); //删除元素
set.contains(2); //判断是否存在值为2的元素
for (Integer integer: set) {
System.out.println(integer);
}
}
go的写法
go中内置类型无set,需要借助其他的软件包实现set,在这里不介绍
python的写法
def set_demo():
s = set() # 声明set
s = {1, 2} # 定义set
s.add(3) # 添加元素
s.remove(1) # 删除值为1的元素
s.pop() # 删除最后一个元素
for i in s:
print(i) # 遍历元素并打印
总结对比:
1. c和go没有内置的set类型;
2. set是无序的元素集合,所以不能直接查找某个位置元素的值,使用场景多为统计种类的多少等;