freeCodeCamp/guide/chinese/cplusplus/map/index.md

81 lines
1.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

---
title: Map
localeTitle: 地图
---
## 地图介绍
`map`是一个关联容器,用于存储键值对中的元素。就像在`Java`有集合PHP中的关联数组等。
## 使用地图的好处
* 它仅存储唯一键,并且也基于其指定的排序标准按排序顺序存储。
* 由于键是按排序顺序的,因此通过键在地图中搜索元素非常快,即它需要对数时间。
* 在`map` ,每个键只附加一个值。
* `map`可以用作关联数组。
* 它可以使用平衡二叉树实现。
这是一个例子:
```c++
#include <iostream>
#include <map>
using namespace std;
int main (){
map<char,int> first;
//initializing
first['a']=10;
first['b']=20;
first['c']=30;
first['d']=40;
map<char, int>::iterator it;
for(it=first.begin(); it!=first.end(); ++it){
cout << it->first << " => " << it->second << '\n';
}
return 0;
}
```
输出:
```
a => 10
b => 20
c => 30
d => 40
```
## 创建地图对象
`map<string, int> myMap;`
## 插入
使用插入成员函数插入数据。
```c++
myMap.insert(make_pair("earth", 1));
myMap.insert(make_pair("moon", 2));
```
我们还可以使用operator \[\] ie在std :: map中插入数据
`myMap["sun"] = 3;`
## 访问地图元素
要访问地图元素,您必须为它创建迭代器。这是前面提到的一个例子。
```c++
map<char, int>::iterator it;
for(it=first.begin(); it!=first.end(); ++it){
cout << it->first << " => " << it->second << '\n';
}
```
在这里,您可以了解有关地图的更多信息: [cpluspluc\_map](http://www.cplusplus.com/reference/map/map/map/)
注意示例中的所有代码都是C ++ 11版本。您可以[在此处](http://en.cppreference.com/w/cpp/compiler_support)了解有关C ++版本的更多信息