unordered_map添加成员方法
时间: 2024-02-05 11:09:25 浏览: 32
unordered_map是C++标准库中的一个容器,它提供了一种键值对的映射关系。在使用unordered_map时,我们可以通过添加成员方法来扩展其功能。
下面是一些常用的unordered_map成员方法:
1. insert():用于向unordered_map中插入键值对。可以接受一个pair对象、一个初始化列表或者两个迭代器指定的范围。
2. erase():用于从unordered_map中删除指定的键值对。可以接受一个键值作为参数,也可以接受一个迭代器指定的范围。
3. find():用于查找指定键对应的值。如果找到了,则返回指向该键值对的迭代器;如果未找到,则返回unordered_map的end迭代器。
4. count():用于统计指定键在unordered_map中出现的次数。返回值为0或1,因为unordered_map中每个键只能出现一次。
5. size():用于返回unordered_map中键值对的数量。
6. empty():用于判断unordered_map是否为空。如果为空,则返回true;否则返回false。
7. clear():用于清空unordered_map,即删除所有的键值对。
8. at():用于访问指定键对应的值。如果指定的键不存在,则会抛出异常。
9. operator[]:用于访问指定键对应的值。如果指定的键不存在,则会自动插入一个新的键值对,并返回对应的值。
以上是unordered_map的一些常用成员方法,通过使用这些方法,我们可以方便地操作unordered_map中的键值对。
相关问题
unordered_map添加元素
unordered_map是C++标准库中的一个关联容器,它提供了一种键值对的映射关系。要向unordered_map中添加元素,可以使用insert()函数或者使用下标操作符[]。
使用insert()函数添加元素的语法如下:
```cpp
unordered_map<Key, T> myMap;
myMap.insert(make_pair(key, value));
```
其中,Key表示键的类型,T表示值的类型。make_pair()函数用于创建一个键值对,将其作为参数传递给insert()函数。
使用下标操作符[]添加元素的语法如下:
```cpp
unordered_map<Key, T> myMap;
myMap[key] = value;
```
这种方式会直接将键值对插入到unordered_map中,如果键已经存在,则会更新对应的值。
unordered_map删除成员
unordered_map是C++标准库中的一个关联容器,它提供了一种键值对的映射关系。要删除unordered_map中的成员,可以使用erase()函数来实现。
erase()函数有多种用法,可以根据需要选择适合的方式进行删除。以下是几种常见的删除方式:
1. 删除指定键的成员:
```cpp
unordered_map<int, string> myMap;
myMap[1] = "apple";
myMap[2] = "banana";
myMap[3] = "orange";
myMap.erase(2); // 删除键为2的成员
```
2. 删除指定范围内的成员:
```cpp
unordered_map<int, string> myMap;
myMap[1] = "apple";
myMap[2] = "banana";
myMap[3] = "orange";
auto it = myMap.find(2);
myMap.erase(it, myMap.end()); // 删除从it指向的成员到末尾的所有成员
```
3. 删除满足条件的成员:
```cpp
unordered_map<int, string> myMap;
myMap[1] = "apple";
myMap[2] = "banana";
myMap[3] = "orange";
for (auto it = myMap.begin(); it != myMap.end(); ) {
if (it->second == "banana") {
it = myMap.erase(it); // 删除值为"banana"的成员
} else {
++it;
}
}
```
需要注意的是,使用erase()函数删除成员后,unordered_map的大小会相应减小。