std::map .at
时间: 2024-01-25 20:12:25 浏览: 144
std::map是C++中的关联容器,它提供了一种将键和值关联起来的方式。.at()是std::map的成员函数之一,用于获取给定键对应的值。下面是一个使用.at()方法的示例:
```cpp
#include <iostream>
#include <map>
int main() {
std::map<int, std::string> myMap = {{0, "11"}, {2, "22"}, {3, "33"}};
std::cout << myMap.at(2) << std::endl; // 输出:22
return 0;
}
```
在上面的示例中,我们创建了一个std::map对象myMap,并初始化了一些键值对。然后,我们使用.at()方法获取键为2的值,并将其打印出来。
需要注意的是,如果使用.at()方法获取一个不存在的键的值,将会抛出一个std::out_of_range异常。因此,在使用.at()方法之前,最好先使用.count()方法或.find()方法来检查键是否存在。
相关问题
std::insert插入map
`std::insert`是C++标准库中的一个函数模板,用于向关联容器如`std::map`中插入元素。当你需要将新的键值对添加到已有的映射结构中时,可以使用这个操作。在`std::map`中,它通常配合迭代器一起使用。
`std::map::insert`的基本语法如下:
```cpp
template <typename... Args>
std::pair<iterator, bool> insert(
iterator hint,
const value_type& val
);
```
其中:
- `iterator`是你想要插入位置的迭代器,如果没有提供,那么默认会在容器的尾部插入。
- `value_type`是映射类型的键值对,例如对于`std::map<Key, Value>`,就是`(Key, Value)`对。
- 返回的`std::pair`包含两个成员:一个是插入后的迭代器,另一个是一个布尔值,表示插入是否成功(如果键已经存在,则不会插入并返回false)。
示例:
```cpp
std::map<int, std::string> myMap;
auto it = myMap.insert({42, "Life, the universe, and everything"}); // 插入新元素
if (it.second) {
std::cout << "Inserted successfully at position: " << it.first << std::endl;
} else {
std::cout << "Element already exists" << std::endl;
}
```
std::map全部用法
std::map是C++标准库中的一个关联容器,它提供了一种键值对的映射关系。下面是std::map的一些常用用法:
1. 插入元素:
- 使用insert()函数插入键值对:map.insert(std::make_pair(key, value));
- 使用下标操作符[]插入键值对:map[key] = value;
2. 访问元素:
- 使用下标操作符[]访问元素:value = map[key];
- 使用at()函数访问元素:value = map.at(key);
3. 删除元素:
- 使用erase()函数删除指定键的元素:map.erase(key);
- 使用clear()函数清空整个map:map.clear();
4. 查找元素:
- 使用find()函数查找指定键的元素,返回一个迭代器:auto it = map.find(key);
- 使用count()函数统计指定键的元素个数:int count = map.count(key);
5. 遍历元素:
- 使用迭代器进行遍历:for(auto it = map.begin(); it != map.end(); ++it) { key = it->first; value = it->second; }
- 使用范围for循环进行遍历:for(const auto& pair : map) { key = pair.first; value = pair.second; }
6. 获取大小:
- 使用size()函数获取map中键值对的数量:int size = map.size();
7. 判断是否为空:
- 使用empty()函数判断map是否为空:bool isEmpty = map.empty();
8. 按键排序:
- 默认情况下,std::map按照键的升序进行排序;
- 可以使用自定义的比较函数或者函数对象来指定排序规则。
以上是std::map的一些常用用法,希望对你有帮助。
阅读全文