https://www.cnblogs.com/fnlingnzb-learner/p/5833051.html
https://blog.csdn.net/tianwei0822/article/details/82082234
https://blog.csdn.net/qq632544991p/article/details/51713903
#include <map> //注意,STL头文件没有扩展名.h
map<int, string> mapStudent;
//插入
mapStudent.insert(pair<int, string>(1, "student_one")); //不能覆盖
mapStudent.insert(map<int, string>::value_type (1, "student_one")); //不能覆盖
mapStudent[2] = "student_two"; //可以覆盖
//map的大小
Int nSize = mapStudent.size();
//数据遍历
map<int, string>::iterator iter; //前向迭代器
for(iter = mapStudent.begin(); iter != mapStudent.end(); iter++)
cout<<iter->first<<' '<<iter->second<<endl;
map<int, string>::reverse_iterator iter; //反向迭代器
for(iter = mapStudent.rbegin(); iter != mapStudent.rend(); iter++)
cout<<iter->first<<" "<<iter->second<<endl;
for(int nindex = 1; nindex <= nSize; nindex++) //数组形式,注意是从1到size
cout<<mapStudent[nindex]<<endl;
//数据查找
mapStudent.count(nindex);//返回1 有这个数,返回0 没有这个数
//iterator数据类型是一个std::pair对象,包括两个数据 iterator->first和 iterator->second分别代表关键字和存储的数据。
map<int, string>::iterator iter; //begin()第一个条目,end()最后一个条目
iter = mapStudent.find(nindex); //如果有数 返回此位置的迭代器,如果没有 返回mapStudent.end()
if(iter != mapStudent.end())
cout<<"Find, the value is "<<iter->second<<endl;
else
cout<<"Do not Find"<<endl;
//如果要删除1,用迭代器删除
map<int, string>::iterator iter;
iter = mapStudent.find(1);
mapStudent.erase(iter);
//如果要删除1,用关键字删除
int n = mapStudent.erase(1);//如果删除了会返回1,否则返回0
//用迭代器,成片的删除
//一下代码把整个map清空
mapStudent.erase( mapStudent.begin(), mapStudent.end() );
//成片删除要注意的是,也是STL的特性,删除区间是一个前闭后开的集合
clear()就相当于enumMap.erase(enumMap.begin(),enumMap.end());
//map中的swap不是一个容器中的元素交换,而是两个容器所有元素的交换。
//map中的sort问题
//map中的元素是自动按Key升序排序,所以不能对map用sort函数;
map的基本操作函数:
C++ maps是一种关联式容器,包含“关键字/值”对
begin() 返回指向map头部的迭代器
end() 返回指向map末尾的迭代器
rbegin() 返回一个指向map尾部的逆向迭代器
rend() 返回一个指向map头部的逆向迭代器
erase() 删除一个元素
clear() 删除所有元素
insert() 插入元素
count() 返回指定元素出现的次数
find() 查找一个元素
size() 返回map中元素的个数
empty() 如果map为空则返回true
equal_range() 返回特殊条目的迭代器对
get_allocator() 返回map的配置器
key_comp() 返回比较元素key的函数
lower_bound() 返回键值>=给定元素的第一个位置
max_size() 返回可以容纳的最大元素个数
swap() 交换两个map
upper_bound() 返回键值>给定元素的第一个位置
value_comp() 返回比较元素value的函数