访问map中的元素
时间: 2024-01-21 13:18:06 浏览: 15
要访问map中的元素,可以使用它的键来获取值。以下是一些示例代码:
```
#include <iostream>
#include <map>
using namespace std;
int main() {
map<string, int> myMap;
myMap["apple"] = 5;
myMap["banana"] = 3;
myMap["orange"] = 2;
// 访问元素
cout << "The value of apple is: " << myMap["apple"] << endl;
// 迭代访问元素
for (auto it = myMap.begin(); it != myMap.end(); ++it) {
cout << it->first << " = " << it->second << endl;
}
return 0;
}
```
输出:
```
The value of apple is: 5
apple = 5
banana = 3
orange = 2
```
在上面的示例中,我们创建了一个名为`myMap`的map,并将`"apple"`,`"banana"`和`"orange"`作为键,将它们的值分别设置为`5`,`3`和`2`。然后,我们使用`myMap["apple"]`来访问`"apple"`键的值。我们还使用迭代器遍历map中的所有元素,并打印它们的键和值。
相关问题
unordered_map访问元素
unordered_map是C++标准库中的一个关联容器,提供了一种通过键值对的方式来存储和访问元素的方法。unordered_map内部使用哈希表来实现,因此可以在常数时间内进行元素的插入、查找和删除操作。
要访问unordered_map中的元素,可以使用下标运算符[]或者成员函数at()。下标运算符[]可以用于访问指定键对应的值,如果该键不存在,则会自动插入一个默认值。例如:
```cpp
#include <unordered_map>
#include <iostream>
int main() {
std::unordered_map<std::string, int> myMap;
myMap["apple"] = 5;
myMap["banana"] = 3;
std::cout << myMap["apple"] << std::endl; // 输出:5
std::cout << myMap["banana"] << std::endl; // 输出:3
std::cout << myMap["orange"] << std::endl; // 输出:0(默认值)
return 0;
}
```
成员函数at()也可以用于访问指定键对应的值,但与下标运算符不同的是,如果该键不存在,则会抛出一个std::out_of_range异常。例如:
```cpp
#include <unordered_map>
#include <iostream>
int main() {
std::unordered_map<std::string, int> myMap;
myMap["apple"] = 5;
myMap["banana"] = 3;
std::cout << myMap.at("apple") << std::endl; // 输出:5
std::cout << myMap.at("banana") << std::endl; // 输出:3
std::cout << myMap.at("orange") << std::endl; // 抛出异常
return 0;
}
```
除了使用下标运算符和at()函数,还可以使用成员函数find()来查找指定键对应的迭代器,然后通过迭代器来访问元素。如果找到了指定键,则返回指向该键值对的迭代器;如果未找到,则返回unordered_map的end()迭代器。例如:
```cpp
#include <unordered_map>
#include <iostream>
int main() {
std::unordered_map<std::string, int> myMap;
myMap["apple"] = 5;
myMap["banana"] = 3;
auto it = myMap.find("apple");
if (it != myMap.end()) {
std::cout << it->second << std::endl; // 输出:5
}
return 0;
}
```
如何访问map容器中的元素
在C++中,我们可以使用以下两种方法来访问map容器中的元素:
1. 使用方括号[]操作符:可以通过键值来访问map容器中的元素。
例如,如果有一个名为myMap的map容器,其中包含键值对"apple"和5,则可以使用以下方式访问元素:
```
int value = myMap["apple"];
```
2. 使用find()成员函数:可以使用find()函数来查找特定键值的元素,并返回一个指向该元素的迭代器。
例如,如果有一个名为myMap的map容器,其中包含键值对"apple"和5,则可以使用以下方式访问元素:
```
auto it = myMap.find("apple");
if (it != myMap.end()) {
int value = it->second;
}
```
其中,it是一个指向找到的元素的迭代器,it->second是元素的值。需要注意的是,如果find()函数未找到该键值,则它将返回map容器的end()迭代器。因此,我们需要使用if语句来检查是否找到了元素。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)