定义并实现一个元素类型为int,元素个数不受限制的集合类Inset
时间: 2024-03-17 16:40:48 浏览: 39
好的,下面是一个使用哈希表实现的元素类型为int,元素个数不受限制的集合类Inset的定义和实现:
```c++
#include <iostream>
#include <unordered_set>
class Inset {
public:
// 插入一个元素
void insert(int x) {
set.insert(x);
}
// 删除一个元素
void erase(int x) {
set.erase(x);
}
// 判断元素是否存在
bool contains(int x) const {
return set.count(x);
}
// 获取元素个数
int size() const {
return set.size();
}
// 清空集合
void clear() {
set.clear();
}
private:
std::unordered_set<int> set;
};
int main() {
Inset mySet;
// 插入元素
mySet.insert(1);
mySet.insert(2);
mySet.insert(3);
// 删除元素
mySet.erase(2);
// 判断元素是否存在
std::cout << "mySet contains 1: " << mySet.contains(1) << std::endl;
std::cout << "mySet contains 2: " << mySet.contains(2) << std::endl;
// 获取元素个数
std::cout << "mySet size: " << mySet.size() << std::endl;
// 清空集合
mySet.clear();
return 0;
}
```
这里我们使用了 C++ STL 中的 unordered_set,它是一种基于哈希表实现的集合容器。我们只需要实现 Inset 类中的接口,并在内部使用 unordered_set 进行实现即可。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![.zip](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)