map容器:
继上一篇 ,Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。map内部自建一颗红黑树(一 种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的。至于二叉树这种数据结构,本人暂时没有任何了解。在map这个容器中,提供一种“键- 值”关系的一对一的数据存储能力。其“键”在容器中不可重复,且按一定顺序排列,至于怎么排列,那么红黑树这种数据结构的特性了。
KEY VALUE
x1 <---------> y1
键 x2 <---------> y2 值
x3 <---------> y3
#include <iostream> #include <map> using namespace std;int main() { map <int, string> m1 = {{ 3, "guangzhou" }, { 2, "shenzhen" }, { 1, "changsha" } };//实例化一个map容器,内含三组数据 /* begin() 返回指向map头部的迭代器 clear() 删除所有元素 count() 返回指定元素出现的次数 empty() 如果map为空则返回true end() 返回指向map末尾的下一个迭代器 erase() 删除一个元素 find() 查找一个元素 insert() 插入元素 max_size() 返回可以容纳的最大元素个数 size() 返回map中元素的个数 swap() 交换两个map rbegin() 反向迭代器,指向最后一个迭代器 rend() 指向map头结点的前一个迭代器 */ map <int, string>::iterator itor = m1.begin(); for( ; itor != m1.end(); itor++) cout << itor->first << " " << itor->second << endl; //以数组的方式插入数据; /*for(int i = 1; i < 5; i++) { string s; cin>>s; m1[i] = s; } cout << " 插入数据后:" << endl; itor = m1.begin(); for( ; itor != m1.end(); itor++) cout << itor->first << " " << itor->second << endl; */ return 0; }