实现相关函数: #include <set> #include <iostream> #include "function.h" using namespace std; void insert(set<int>& s, int val); void erase(set<int>& s, int val); void erase(set<int>& s, set<int>::iterator& pos); set<int>::iterator find(set<int>& s, int val); // {val, val, val} void print(set<int>& s); int main() { set<int> s; for (int i = 0; i < 5; i++) { insert(s, i); } cout << "set size: " << s.size() << endl; print(s); auto it = find(s, 1); if (it != s.end()) { erase(s, it); } cout << "set size: " << s.size() << endl; print(s); if (s.count(2) == 1) { erase(s, 2); } cout << "set size: " << s.size() << endl; print(s); return 0; }输出:set size: 5 {0, 1, 2, 3, 4} set size: 4 {0, 2, 3, 4} set size: 3 {0, 3, 4}
时间: 2024-03-17 22:42:11 浏览: 41
实现如下:
```cpp
void insert(set<int>& s, int val) {
s.insert(val);
}
void erase(set<int>& s, int val) {
s.erase(val);
}
void erase(set<int>& s, set<int>::iterator& pos) {
s.erase(pos);
}
set<int>::iterator find(set<int>& s, int val) {
return s.find(val);
}
void print(set<int>& s) {
cout << "{";
for (auto it = s.begin(); it != s.end(); it++) {
cout << *it;
if (next(it) != s.end()) {
cout << ", ";
}
}
cout << "}\n";
}
```
输出结果:
```
set size: 5
{0, 1, 2, 3, 4}
set size: 4
{0, 2, 3, 4}
set size: 3
{0, 3, 4}
```
相关问题
实现相关函数: #include <set> #include <iostream> #include "function.h" using namespace std; void insert(set<int>& s, int val); void erase(set<int>& s, int val); void erase(set<int>& s, set<int>::iterator& pos); set<int>::iterator find(set<int>& s, int val); // {val, val, val} void print(set<int>& s); int main() { set<int> s; for (int i = 0; i < 5; i++) { insert(s, i); } cout << "set size: " << s.size() << endl; print(s); auto it = find(s, 1); if (it != s.end()) { erase(s, it); } cout << "set size: " << s.size() << endl; print(s); if (s.count(2) == 1) { erase(s, 2); } cout << "set size: " << s.size() << endl; print(s); return 0; }
下面是这些函数的实现:
```cpp
#include <set>
#include <iostream>
#include "function.h"
using namespace std;
void insert(set<int>& s, int val) {
s.insert(val);
}
void erase(set<int>& s, int val) {
s.erase(val);
}
void erase(set<int>& s, set<int>::iterator& pos) {
s.erase(pos);
}
set<int>::iterator find(set<int>& s, int val) {
return s.find(val);
}
// {val, val, val}
void print(set<int>& s) {
for (auto it = s.begin(); it != s.end(); ++it) {
cout << *it << " ";
}
cout << endl;
}
```
这些函数分别使用了 set 提供的 insert、erase、find 函数,实现了对 set 集合中元素的插入、删除和查找功能。注意,erase 函数有两个版本,一个是根据元素的值删除元素,另一个是根据迭代器删除元素。同时,print 函数遍历 set 集合中的元素,输出它们的值。
#include <set> #include <iostream> #include "function.h" using namespace std; void insert(set<int>& s, int val); void erase(set<int>& s, int val); void erase(set<int>& s, set<int>::iterator& pos); set<int>::iterator find(set<int>& s, int val); // {val, val, val} void print(set<int>& s); int main() { set<int> s; for (int i = 0; i < 5; i++) { insert(s, i); } cout << "set size: " << s.size() << endl; print(s); auto it = find(s, 1); if (it != s.end()) { erase(s, it); } cout << "set size: " << s.size() << endl; print(s); if (s.count(2) == 1) { erase(s, 2); } cout << "set size: " << s.size() << endl; print(s); return 0; }
这是一段 C++ 代码,实现了对 STL 库中的 set 容器进行插入、删除、查找、打印等操作。具体解释如下:
- insert:向 set 容器中插入一个指定的元素 val。
- erase:从 set 容器中删除一个指定的元素 val,或者删除一个指定的迭代器 pos。
- find:在 set 容器中查找指定的元素 val,返回一个迭代器,如果找不到则返回 s.end()。
- print:遍历 set 容器中的所有元素,并打印输出。
在 main 函数中,先创建一个 set 容器 s,并向其中插入 0~4 这五个元素。然后输出 set 的大小和所有元素。接着通过 find 函数查找元素 1,如果找到则通过 erase 函数删除该元素。再通过 count 函数判断元素 2 是否在 set 中,如果在则通过 erase 函数删除该元素。最后再次输出 set 的大小和所有元素。
需要注意的是,这段代码中的 insert、erase、find 和 print 函数都是自定义的,需要在 function.h 文件中进行定义。
阅读全文
相关推荐















