std::map 如何取值,共有哪些方法
时间: 2023-07-20 20:39:47 浏览: 90
std::map 取值的方法主要有以下几种:
1. 通过下标 operator[] 取值:
```
std::map<std::string, int> myMap;
myMap["apple"] = 1;
int value = myMap["apple"]; // value = 1
```
如果该键不存在,会自动插入一个默认值。
2. 通过成员函数 at() 取值:
```
std::map<std::string, int> myMap;
myMap["apple"] = 1;
int value = myMap.at("apple"); // value = 1
```
如果该键不存在,会抛出 std::out_of_range 异常。
3. 通过成员函数 find() 取值:
```
std::map<std::string, int> myMap;
myMap["apple"] = 1;
auto iter = myMap.find("apple");
if (iter != myMap.end()) {
int value = iter->second; // value = 1
}
```
如果该键不存在,返回的迭代器等于 std::map 的 end() 迭代器。
4. 通过成员函数 count() 判断键是否存在:
```
std::map<std::string, int> myMap;
myMap["apple"] = 1;
if (myMap.count("apple") > 0) {
int value = myMap["apple"]; // value = 1
}
```
如果该键存在,返回值大于 0;否则返回值等于 0。
需要注意的是,以上方法都是按照键值进行查找,如果需要按照值来查找元素,则需要自行实现。
阅读全文