unordered_set的函数
时间: 2023-08-13 17:11:14 浏览: 47
unordered_set是C++标准库中的一个容器,它是一个无序集合,内部元素没有特定的顺序。下面是一些unordered_set常用的函数:
1. insert(key):向unordered_set中插入一个元素key。
2. erase(key):从unordered_set中删除一个元素key。
3. find(key):查找unordered_set中是否存在元素key,并返回指向该元素的迭代器。如果不存在,则返回unordered_set::end()。
4. count(key):返回unordered_set中等于给定键key的元素的数量。由于unordered_set中每个键只能出现一次,因此返回值只能是0或1。
5. size():返回unordered_set中的元素数量。
6. empty():判断unordered_set是否为空。
7. clear():清空unordered_set中的所有元素。
8. begin()和end():返回指向unordered_set首个元素和尾后元素的迭代器,用于遍历unordered_set。
此外,unordered_set还支持迭代器的操作,如++、--、*等,以及其他一些操作符如==、!=等。你可以根据具体需求选择使用。
相关问题
unordered_set的函数用法
unordered_set是C++ STL中的一个容器,用于存储元素的无序集合。以下是常用的unordered_set函数的用法:
1. insert():向unordered_set中插入元素,如果元素已经存在,则不会插入。
```
unordered_set<int> s;
s.insert(1);
s.insert(2);
s.insert(3);
```
2. erase():从unordered_set中删除元素,如果元素不存在,则不会删除。
```
unordered_set<int> s = {1, 2, 3};
s.erase(2);
```
3. find():在unordered_set中查找元素,返回指向该元素的迭代器,如果元素不存在,则返回end()迭代器。
```
unordered_set<int> s = {1, 2, 3};
auto it = s.find(2);
if (it != s.end()) {
// 元素存在
} else {
// 元素不存在
}
```
4. size():返回unordered_set中元素的个数。
```
unordered_set<int> s = {1, 2, 3};
cout << s.size() << endl; // 输出3
```
5. clear():清空unordered_set中的元素。
```
unordered_set<int> s = {1, 2, 3};
s.clear();
cout << s.size() << endl; // 输出0
```
6. empty():判断unordered_set是否为空,如果为空返回true,否则返回false。
```
unordered_set<int> s;
if (s.empty()) {
// s为空
} else {
// s不为空
}
```
7. bucket_count():返回unordered_set中桶的数目。
```
unordered_set<int> s = {1, 2, 3};
cout << s.bucket_count() << endl;
```
8. load_factor():返回unordered_set中当前装载因子的值。
```
unordered_set<int> s = {1, 2, 3};
cout << s.load_factor() << endl;
```
9. max_load_factor():返回unordered_set中最大装载因子的值。
```
unordered_set<int> s = {1, 2, 3};
cout << s.max_load_factor() << endl;
```
10. reserve():设置unordered_set的桶数,以便能够容纳更多元素。
```
unordered_set<int> s;
s.reserve(100);
```
unordered_set和set函数
unordered_set和set是C++标准库中的两种容器,用于存储不重复的元素集合。它们的区别在于底层实现方式和性能特点。
set是基于红黑树(balanced binary search tree)实现的,它对元素进行自动排序,并且支持高效的插入、删除和查找操作。set中的元素按照一定的顺序排列,因此在需要有序访问元素的情况下,set是一个很好的选择。
unordered_set是基于哈希表(hash table)实现的,它不会对元素进行排序,而是根据元素的哈希值进行存储和访问。unordered_set对于插入、删除和查找操作具有常数时间复杂度,而set的这些操作的时间复杂度是对数级别。因此,在不需要有序访问元素的情况下,unordered_set具有更好的性能。
使用时,你可以根据需求选择使用set还是unordered_set。如果对元素的顺序没有要求并且需要高效的插入、删除和查找操作,可以选择unordered_set;如果需要对元素进行有序访问或者需要保持元素插入的顺序,可以选择set。