整理一下他们常用的函数以及举几个例子
时间: 2023-12-19 16:05:58 浏览: 28
下面是这些容器常用的函数和一些示例:
1. unordered_multiset和unordered_set:
- insert(key): 插入一个键。
- erase(key): 删除指定键的元素。
- find(key): 查找指定键的元素。
- count(key): 返回指定键的元素数量。
```cpp
std::unordered_multiset<int> ums;
ums.insert(10);
ums.insert(20);
ums.insert(10);
ums.erase(20);
auto it = ums.find(10);
if (it != ums.end()) {
// 找到了键为10的元素
}
int count = ums.count(10); // 返回2
```
2. unordered_multimap和unordered_map:
- insert(std::pair<key, value>): 插入一个键值对。
- erase(key): 删除指定键的所有元素。
- find(key): 查找指定键的元素。
- count(key): 返回指定键的元素数量。
```cpp
std::unordered_multimap<int, std::string> umm;
umm.insert(std::make_pair(1, "apple"));
umm.insert(std::make_pair(2, "banana"));
umm.insert(std::make_pair(1, "orange"));
umm.erase(2);
auto it = umm.find(1);
while (it != umm.end()) {
// 遍历键为1的所有元素
std::cout << it->second << std::endl;
++it;
}
int count = umm.count(1); // 返回2
```
3. set和map:
- insert(key): 插入一个键。
- erase(key): 删除指定键的元素。
- find(key): 查找指定键的元素。
- count(key): 返回指定键的元素数量。
```cpp
std::set<int> s;
s.insert(10);
s.insert(20);
s.erase(10);
auto it = s.find(20);
if (it != s.end()) {
// 找到了键为20的元素
}
int count = s.count(10); // 返回0
```
4. multiset和multimap:
- insert(key): 插入一个键。
- erase(key): 删除指定键的元素。
- find(key): 查找指定键的元素。
- count(key): 返回指定键的元素数量。
```cpp
std::multiset<int> ms;
ms.insert(10);
ms.insert(20);
ms.insert(10);
ms.erase(20);
auto it = ms.find(10);
while (it != ms.end()) {
// 遍历键为10的所有元素
std::cout << *it << std::endl;
++it;
}
int count = ms.count(10); // 返回2
```
这些函数只是其中的一部分,STL还提供了其他丰富的函数和操作符,可以根据实际需求进行使用。