81 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			81 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| ---
 | ||
| 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 ++版本的更多信息 |